版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章网络爬虫
HTML的英文全称是HyperTextMarkedLanguage,也为超文本标记语言,它是一种标识性的语言。HTML包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTTP也叫作超文本传输协议,它是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,是互联网上应用最为广泛的一种网络协议静态网页就是人们常见的HTML页面,该页面的后缀为
.html
类型。通常可以将静态网页直接部署到或者是放到某个web容器上,然后在浏览器通过链接直接访问。图中包含了HTML文件,CSS文件以及JavaScript代码。在网页中,不同类型的文字通过不同类型的标签来表示,如图片用
<img>
标签表示,视频用
<video>
标签表示,段落用
<p>
标签表示,它们之间的布局又常通过布局标签
<div>
嵌套组合而成网络爬虫(WebSpider)又称之为网络机器人、网络蜘蛛,是一种通过既定规则,能够自动提取网页信息的程序。(1)Request(请求)。(2)Response(响应)网页请求的方式一般分为两种:GET和POST。(1)GET:GET是最常见的请求方式(2)POST:POST允许客户端给服务器提供信息较多robots原理robots协议全称叫作“网络爬虫排除标准”,该协议是互联网中的道德规范,主要用于保护网站中的某些隐私。网站可以通过robots告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。4.2Python3网络爬虫实现
urllib是Python3中自带的一个HTTP请求库。凭借其拥有强大的函数库以及部分函数对获取网站源码的针对性,Python成为能够胜任完成网络数据爬取的计算机语言。【例4-1】使用urllib访问目标网页。在urllib模块中可以使用urllib.request.urlopen()函数访问网页,urllib.request.urlopen()函数参数如下:urllib.request.urlopen(url,data=None,[timeout,]*,cafile=None,capath=None,cadefault=False,context=None)
【例4-2】使用urllib访问目标网页,并获取响应。importurllib.requestresponse=urllib.request.urlopen('')print(response.status)print(response.getheaders())print(response.getheader('Server'))【例4-3】使用urllib访问目标网页,并输出网页内容。importurllib.requestresponse=urllib.request.urlopen('')print(response.read().decode('utf-8'))Requests是用Python语言编写,基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib更加方便,可以节约开发者大量的工作,完全满足HTTP测试需求。【例4-4】使用GET方式抓取网页数据。importrequestsurl=""strhtml=requests.get(url)print(strhtml.text)【例4-5】使用GET方式直接读取网页数据。importrequestsr=requests.get('')print(r.text)【例4-6】使用GET方式读取网页数据,并设置超时反应。importrequestsr=requests.get("/",timeout=1)print(r.status_code)【例4-7】使用Requests库抓取网页图片。importrequestsr3=requests.get("/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png")withopen('baidu_logo.png','wb')asf:f.write(r3.content)BeautifulSoup
提供一些简单的、Python式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据【例4-8】使用BeautifulSoup获取网页信息。frombs4importBeautifulSoupfile=open('4-1.html','rb')html=file.read()bs=BeautifulSoup(html,"html.parser")#缩进格式print(bs.prettify())#格式化html结构print(bs.title)#获取title标签的名称print()#获取title的nameprint(bs.title.string)#获取head标签的所有内容print(bs.head)【例4-9】使用BeautifulSoup获取网页中的超链接信息。frombs4importBeautifulSoupfile=open('4-2.html','rb')html=file.read()bs=BeautifulSoup(html,"html.parser")#缩进格式print(bs.a.attrs)【例4-10】使用urllib访问百度翻译并输出翻译的结果。importjsonimporturllib.requestimporturllib.parseurl="/sug/"headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:62.0)Gecko/20100101Firefox/62.0",}formData={"kw":"wonder",}request=urllib.request.Request(url,headers=headers)response=urllib.request.urlopen(request,urllib.parse.urlencode(formData).encode())responseData=json.loads(response.read().decode("unicode_escape"))showDatas=responseData.get("data")[0].get("v")print(showDatas)4.4本章小结(1)网络爬虫(WebSpider)又称之为网络机器人、网络蜘蛛,是一种通过既定规则,能够自动提取网页信息的程序。(2)Request(请求),每一个用户打开的网页都必须在最开始由用户向服务器发送访问的请求。Response(响应),服务器在接收到用户的请求后,会验证请求的有效性,然后向用户发送相应的内容。(3)urllib是Python3中自带的一个HTTP请求库,urllib是URL和lib两个单词共同构成的,URL就是网页的地址,lib是library(库)的缩写。(4)Requests是用Python语言编写,基于urllib,采用Apache2Licensed开源协议的HTTP库。它比urllib
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长春市宽城区2025届三年级数学第二学期期末质量跟踪监视模拟试题(含答案解析)
- 房地产销售工作小结范文
- 精准医疗大数据的跨境安全流动风险阻断与跨国药企全球分工下研发要素安全路径-基于跨境数据流动安全评估办法在基因治疗与罕见药研发领域
- 万顺新材首次覆盖报告:产能扩充夯实根基盈利拐点确立
- 交通运输行业2026年中期投资展望:继续押注高确定性并关注底部反弹机会
- 某家具公司木材烘干规范
- 某汽车厂装配质量规范
- 有机无机面试题及答案
- 净化师面试题及答案
- 卫生、清洁及消毒管理规程
- GA/T 2171-2024机动车驾驶人考试场地布局规划指南
- GB/T 10810.2-2025眼镜镜片第2部分:渐变焦
- 《现场管理评价实施指南》团体标准
- 【新教材新高考】2024年高考语文复习:文言文阅读 练习题汇编(含答案解析)
- 2025新鲜牛肉供货合同范本
- DB51T 2498-2018 冬水稻田土壤改良技术规程
- 胸膜腔穿刺术
- HG∕T 5248-2017 风力发电机组叶片用环氧结构胶粘剂
- AQ/T 2076-2020 页岩气钻井井控安全技术规范(正式版)
- 浙江省市政工程安全台账全集文档
- 个人分析报告优势与劣势
评论
0/150
提交评论