- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
11.5网络爬虫
Python程序设计
丁辉商俊燕范晓玲
第十一章网络编程
11.1Pycharm的安装与使用
11.2TCP/IP协议简介
◆11.3TCP编程
11.4UDP编程
11.5网络爬虫
11.6网络编程精选案例◆小结
11.5网络爬虫
网络爬虫(WebSpider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信
息的程序或者脚本。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面开始,读取网页的内容,再找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。
网络爬虫的基本工作流程如下:
(1)首先选取一部分精心挑选的种子URL;
(2)将这些URL放入待抓取队列;
(3)从队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存进下载网页库;
(4)分析已抓取URL队列中的URL,从已下载的网页数据中分析其它URL,并和已抓取的URL
进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环。
Python实现网络爬虫,主要依赖第三方库:
requests库:用来发起请求;
BeautifulSoup库:用来解析HTML结构并提取内容;
Faker库:用来模拟请求UA(User-Agent)。
11.5网络爬虫
●用urllib实现网络爬虫
urllib系Python系统自带的库,提供了urllib.request请求模块、urllib.parse解析模块和urllib.error异常处理模块等模块,很好地支持了网页内容读取功能。
【例11-3】使用urllib库来读取的内容。
#eg11_3.py
#简单的网络爬虫
fromurllibimportrequest
importchardet#编码识别模块
response=request.urlopen()#打开访问的网页
html=response.read(#读取网页
#检测html的编码格式
charset=chardet.detect(html)
print(charset)#输出编码格式
html=html.decode(charset.get(encoding),errors=ignore)
print(html)#输出网页内容
这是网络爬虫最简单的应用。但是如果这样的爬虫多了,会影响网络响应,所以有时会出现服务器拒绝用户的访问请
求。一些网站常用的反爬虫措施是检查headers中的User-Agent。如果使用Python编写的爬虫代码,没有对
headers进行设置,则User-Agent会声明自己是Python脚本,而如果网站做了反爬虫设置,必然会拒绝这样带有Python脚本的请求。因此修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,这是常用的反拒绝手段。
11.5网络爬虫
●用urllib实现网络爬虫(续)
User-Agent域:是向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计。常用的浏览器标识如下:
Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)
Chrome/45.0.2454.85Safari/537.36115Browser/6.0.3,
Mozilla/5.0(Macintosh;U;IntelMacOSX10_6_8;en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50,
Mozilla/5.0(Windows;U;WindowsNT6.1;en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50,
Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0),
Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0),
Mozilla/5.0(WindowsNT6.
文档评论(0)