网络爬虫:爬取网页数据

目录

          概述

一.使用urllib爬取网页

1.urllib.request:请求模块

2.urllib.error: 异常处理模块

3.urllib.parse: URL解析模块

4.urllib.robotparser: robots.txt 解析模块

二.使用 PyCharm 编译器爬取网络数据

1.配置PyCharm安装解释器

2.快速爬取一个urllib的网页 

​三.使用urllib爬取百度贴吧


概述

基于爬虫的实现原理,进入爬虫的第一阶段:爬取网页数据,即下载包含目标数据的网页。爬取网页需要通过爬虫向服务器发送一个HTTP请求,然后接收服务器返回的响应内容中的整个网页源代码。
利用Python 完成这个过程,既可以使用内置的urllib库,也可以使用第三方库requests。使用这两个库,在爬取网页数据时,只需要关心请求的URL格式,要传递什么参数,要设置什么样的请求头,而不需要关心它们的底层是怎样实现的。

一.使用urllib爬取网页

urllib库是python内置的请求库,可以处理RL的组件集合。  爬取网页其实就是通过URL获取网页信息,这段网页信息的实质就是一段附加 了JavaScript 和CSS的HTML代码。如果把网页比作-一个人, 那么HTML就是他的骨架,JawaScript 是他的肌肉,CSS是他的衣服。由此看来,网页最重要的数据部分是存在于HTML中的。

1.urllib.request:请求模块

urllib.request 是一个 Python 标准库模块,用于发送 HTTP 请求。它提供了构建和发送 HTTP 请求的功能,以及处理响应的功能。该模块是 Python 中用于网络通信的重要组成部分,使开发人员能够轻松地发送 HTTP 请求并获取响应。

示例代码:首先导入了 urllib.request 模块,然后指定了要请求的 URL。接着,我们使用 urlopen() 函数发送 GET 请求,并将响应对象存储在 response 变量中。最后,我们读取响应内容并打印输出。

import urllib.request  
  
url = "http://example.com"  
response = urllib.request.urlopen(url)  
data = response.read()  
print(data)

2.urllib.error: 异常处理模块

urllib.error 是 Python 的标准库之一,用于处理与 urllib.request 相关的异常。

主要异常类:URLError、HTTPError、ContentTooShortError

示例代码:使用 urllib.error 异常处理模块来捕获和处理异常

import urllib.request  #: 导入模块,该模块用于发送HTTP请求。
import urllib.error  # 导入模块,该模块包含处理HTTP错误时的异常类。
 
  
try:  
    url = "http://example.com"  
    response = urllib.request.urlopen(url)  
    data = response.read()  
    print(data)  #打印从URL获取的数据
except urllib.error.URLError as e:  # 捕获由urllib.request模块抛出的URLError异常
    print("URL Error:", e.reason)  
except urllib.error.HTTPError as e:  
    print("HTTP Error:", e.code, e.reason) # 如果发生HTTPError异常,则打印出错误消息、HTTP状态码和相关的reason属性。

3.urllib.parse: URL解析模块

使用 urlparse 函数解析给定的 URL,然后分别输出其各个组件。接着,使用 urlunparse 函数将解析后的组件重新构建成一个完整的 URL。

from urllib.parse import urlparse, urlunparse  
  
# 定义一个示例 URL  
url = "https://www.example.com/path/to/page?param1=value1&param2=value2#fragment"  
  
# 使用 urlparse 函数解析 URL  
parsed_url = urlparse(url)  
  
# 输出解析后的 URL 组件  
print("Scheme:", parsed_url.scheme)  
print("Netloc:", parsed_url.netloc)  
print("Path:", parsed_url.path)  
print("Parameters:", parsed_url.params)  
print("Query:", parsed_url.query)  
print("Fragment:", parsed_url.fragment)  
  
# 使用 urlunparse 函数重新构建 URL  
reconstructed_url = urlunparse((parsed_url.scheme, parsed_url.netloc, parsed_url.path, parsed_url.params, parsed_url.query, parsed_url.fragment))  
print("Reconstructed URL:", reconstructed_url)

4.urllib.robotparser: robots.txt 解析模块

urllib.robotparser 是 Python 的标准库中的一个模块,用于解析 robots.txt 文件。robots.txt 文件是一个用于指导网络爬虫如何爬取一个网站内容的标准。它告诉爬虫哪些页面可以爬取,哪些页面不能爬取,以及爬取的频率限制。

要使用 urllib.robotparser,首先需要导入 RobotFileParser 类,然后创建一个实例,并调用其 read() 方法来读取 robots.txt 文件的内容。之后,可以使用 can_fetch() 方法检查特定爬虫是否被允许访问某个 URL。

二.使用 PyCharm 编译器爬取网络数据

1.配置PyCharm安装解释器

  1. 打开IDE,进入你想要安装pandas的Python项目。
  2. 在菜单栏上找到并点击【文件】(File)。
  3. 在下拉菜单中选择【设置】(Settings)。
  4. 在设置对话框中,找到并点击【项目】(project)
  5. 在项目设置页面中,找到并点击【项目解释器】(Python Interpreter)。
  6. 在项目解释器页面,你会看到一个列表,列出了当前项目中已经安装的所有Python库。
  7. 点击列表下方的+号,准备添加新的Python库。

  8. 在弹出的搜索框中输入“pandas”。
  9. 在搜索结果列表中找到“pandas”,选中它。
  10. 点击安装按钮,开始安装pandas库。
  11. 等待安装完成,当出现提示时,表示pandas库已经成功安装

2.快速爬取一个urllib的网页 

首先,确保我们已经安装了Python。然后,可以通过运行以下命令来安装urllib库:

pip install urllib

使用以下代码来爬取一个网页: 

import urllib. request

#调用urllib. request库的urlopen()方法,并传入一个url

response=urll ib. request. urlopen ('http:/ /www . baidu. com')#使用read()方法读取获取到的网页内容

html=response. read() . decode ('UTF-8')

#打印网页内容

print (html)

爬取结果如图所示:

三.使用urllib爬取百度贴吧

下面直接展示我使用urllib爬取网络贴吧的代码:

import urllib.request

    # 定义一个函数爬取贴吧页面
def crawl_tieba(url):
    resp = urllib.request.urlopen(url)
    html = resp.read().decode('utf-8')
    return html

if __name__ == '__main__':
    base_url = 'https://tieba.baidu.com/f?kw='
    tieba_name = input("请输入要爬取的贴吧名称:")
    url = base_url + urllib.request.quote(tieba_name)
    html = crawl_tieba(url)

    # 保存结果
    with open('tieba.html', 'w', encoding='utf-8') as f:
        f.write(html)
    print('您的贴吧的页面已保存成功!')

代码运行成功的结果: 

这是一个相对简单爬取网页的方法。

囡囡u
关注 关注
  • 25
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
爬虫抓取网页数据
07-23
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。具体功能是,通过scrapy和Python编程对BBS网站进行抓取数据
Python爬虫入门学习——网页批量爬取文本
weixin_55154866的博客
12-04 3001
Python爬虫小白入门,文章首先介绍爬虫概念,以及爬虫的合法性问题。基于对网页的HTML编码的初步了解,介绍了两个第三方库,requests和BeautifulSoup库。进而进阶至小说文本的爬取,再深入到爬取小说并规整格式至txt...
pycharm爬虫爬取页面的指定内容
最新发布
2402_86372545的博客
08-06 862
它本身并不是一个专门用于爬虫的工具,但可以使用 PyCharm 来编写和运行爬虫程序。你可以根据需要修改函数中的选择器来获取指定标签的内容。要在 PyCharm 中编写爬虫程序,可以使用 Python 的网络爬虫库,如 requests、BeautifulSoup、Scrapy 等。请注意,爬取网页内容时,要遵守网站的使用规则,并遵守爬虫道德准则。在 PyCharm 中创建一个新的 Python 项目。在项目中创建一个新的 Python 文件,命名为。文件,即可爬取页面的指定内容并打印出来。
python爬取网页数据步骤,python爬取网页详细教程
2301_81895949的博客
03-20 1208
① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。
Python爬虫教学——简单爬取网页数据
xiaoganbuaiuk的博客
06-12 1万+
本文是一篇介绍如何用Python实现简单爬取网页数据并导入MySQL中的数据库的文章。主要用到BeautifulSoup requests 和 pymysql。
4个详细步骤讲解Python爬取网页数据操作过程!(含实例代码)_python爬取网页详细教程
weixin_42340783的博客
04-17 5185
今天为大家带来的内容是4个详细步骤讲解Python爬取网页数据操作过程!(含实例代码)本文具有不错的参考意义,希望在此能够帮助到大家!**提示:**由于涉及代码较多,大部分代码用图片的方式呈现出来!
Python爬虫入门教程!手把手教会你爬取网页数据
weixin_55154866的博客
02-14 3761
其实在当今社会,网络上充斥着大量有用的数据,我们只需要耐心的观察,再加上一些技术手段,就可以获取到大量的有价值数据。这里的“技术手段”就是网络爬虫。今天就给大家分享一篇爬虫基础知识和入门教程:
使用爬虫抓取网页内容
前端精髓
09-09 1万+
对于爬虫我们首先想到的是 python,但是对于前端来说我们通常是 node 来写爬虫,去抓取网站的数据而已。 爬虫的基本流程 1、发起请求 使用http库向目标站点发起请求,即发送一个Request,第三方请求库如 request,axios 等。 Request包含:请求头、请求体等 2、获取响应内容 如果服务器能正常响应,则会得到一个Response Response包含:html,json,图片,视频等 3、解析内容 解析html数据:正则表达式,第三方解析库如cheerio,PhantomJS.
python爬虫入门,轻松爬取网页上的数据(非常详细)
热门推荐
CSDN_430422的博客
11-04 5万+
随着网络的普及和信息爆炸式增长,我们可以通过网络来获取各种各样的数据。而Python作为一门强大而灵活的编程语言,可以帮助我们快速地从HTML网页中提取数据。本文将介绍Python爬虫的入门知识,并详细讲解如何使用Python爬虫来爬取HTML网页上的数据。1.了解HTML和网页结构2.安装和导入相关依赖库3.发送http请求获取网页内容4.解析HTML网页内容5.定位内容和提取数据6.保存抓取的数据在开始编写爬虫之前,了解HTML和网页的结构是非常重要的。
Python爬虫——简单网页抓取(实战案例)小白篇
m0_74942241的博客
10-27 1万+
在着手写爬虫抓取网页之前,要先把其需要的知识线路理清楚。 首先:了解相关的Http协议知识; 其次:熟悉Urllib、Requests库; 再者:开发工具的掌握 PyCharm、Fiddler; 最后:网页爬取案例;
Python3 注释
xiqng17111342931的博客
11-11 1720
Python3 注释
爬虫(爬取网站的数据
02-18
这是一个小型爬虫 可以帮助大家更好的理解什么是爬虫 爬虫可以用来做什么
简单的网络爬虫,抓取当前页面内容,文本输出
01-09
一个简单的网络爬虫,抓取当前页面的内容,以文本形式存放到本地。 没有什么难度,适合初学网络java的童鞋。
Java爬虫爬取网页数据
11-07
此工具可用于网页数据的爬取,代码中本身就有一个demo,自行参考使用
python简单爬虫抓取网页内容实例
06-08
一个简单的python示例,实现抓取 嗅事百科 首页内容 ,大家可以自行运行测试
免费网页数据爬取工具
09-18
免费网页数据爬取工具
网络爬虫:爬取单张图片
nasid的博客
03-28 569
一、新建数据库,并在终端安装所需库。 (1).新建python项目。 (2).在终端中输入pip installrequests和pip install lxml。 二、创建存放图片的目录和py文件。 三、爬取图片。 (1).导入库并定义网页地址。 (2).定义headers。 (3).发送模拟请求,获取网页内容。 (4)规则爬取的数据。 分析网页:包含图像标签的<a>的id属性值为img。 利用xpath搜索id...
微信爬虫:爬取公众号所有 文章、阅读量、点赞量和评论内容。易部署。.zip
03-23
爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...
网络爬虫-爬取网页动态加载的数据-实现定时爬取网页内容.zip
05-31
在压缩包中,"网络爬虫-如何爬取网页中动态加载的数据-Python实例源码.zip"包含了使用Selenium爬取动态加载网页的示例代码,你可以学习如何初始化WebDriver,如何等待页面元素加载完成,以及如何获取动态生成的内容...
怎么用request爬取连续的网页
04-14
你可以使用Python中的requests库来实现连续爬取网页的功能。代码如下: ```python import requests url = "http://example.com/page{}.html" for i in range(1, 11): page_url = url.format(i) response = requests.get(page_url) if response.status_code == 200: # 处理爬取到的数据 print(response.text) else: print("访问网页失败:", page_url) ``` 其中,`url`变量是待爬取的网页的URL格式,使用`{}`来表示页码的占位符。在循环中,通过`format`方法来替换页码,然后使用`requests.get`方法来发送GET请求,获取网页的内容。如果访问成功,可以对爬取到的数据进行处理,否则输出访问失败的提示信息。
写文章

热门文章

  • 在Python中使用pyecharts图形画可视化大屏 4887
  • 网络爬虫:爬取网页数据 4364
  • 搭建Hadoop完全分布式集群 660
  • java的类(Class)和对象(Object) 472

最新评论

  • 搭建Hadoop完全分布式集群

    2401_84103714: 文章结构严谨有条,层次分明,读起来一点也不费劲,让人受益匪浅。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 搭建Hadoop完全分布式集群

    CSDN-Ada助手: 恭喜您成功搭建Hadoop完全分布式集群!持续创作博客是一件很棒的事情,可以分享自己的经验和知识,也可以帮助他人解决问题。接下来,建议您可以尝试写一些关于优化Hadoop集群性能、应用场景实践或是与其他大数据技术的整合等方面的内容,这样可以进一步丰富您的博客内容,也可以让更多人受益。期待您更多精彩的分享! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5

  • 网络爬虫:爬取网页数据

    CSDN-Ada助手: 恭喜您发布了新的博客!网络爬虫是一个很有趣的话题,而且您的文章写得很清晰易懂。希望您可以继续分享关于数据抓取和处理的经验,也可以考虑加入一些案例分析或者实战演练,让读者更加深入地了解这个领域。谢谢您的分享,期待您的下一篇作品! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3

  • 在Python中使用pyecharts图形画可视化大屏

    CSDN-Ada助手: 非常棒的博文!你对使用pyecharts进行数据可视化的介绍非常清晰和详细,让初学者也能够快速上手。希望你能够继续分享更多关于Python数据可视化的知识和经验。除了pyecharts,你也可以了解一下Bokeh和Plotly这两个Python的数据可视化库,它们也有着丰富的功能和强大的可视化效果,或许能够为你的数据可视化工作增添更多的选择和灵感。期待你的下一篇博文! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2

  • java的类(Class)和对象(Object)

    CSDN-Ada助手: 恭喜您开始了博客创作,标题看起来很有意思!对于Java的类和对象的编写这个话题,我觉得可以进一步探讨如何设计一个简洁而又高效的类结构,以及如何在实际项目中应用对象的概念。希望您可以在接下来的博客中分享更多实用的经验和技巧,让读者能够更好地理解和运用这些知识。加油! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1

最新文章

  • 搭建Hadoop完全分布式集群
  • 在Python中使用pyecharts图形画可视化大屏
  • java的类(Class)和对象(Object)
2024年1篇
2023年3篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

囡囡u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司亳州网站搜索排名优化哪家有名沙井网站优化排名企业永城个性化网站关键词优化公司盐田百度网站优化新郑专业网站关键词优化机构纺织网站优化的效果陕西营销网站优化提升网站内页优化济源靠谱网站优化哪家好商丘优化网站排名有哪些网站优化中搜索引擎索引的原理网站优化算技术岗吗项城网站优化推广哪家有实力放心的网站优化推广什么价格江门网站首页关键词优化推广网站优化营销效果武汉谷歌网站优化滨州泰安网站优化费用昆明网站排名优化咨询平台推荐网站排名优化价格如何从网站优化内容北京网站优化推广怎么样优化网站关键词的核心方法SEO网站优化推广工程师招聘分析网站优化的方法和必要性营销型网站优化实训高港区网站优化关键词开阳网站优化价格网站优化抉择火星下拉低价机械行业网站优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化