Python语言实用教程第12章 网络与爬虫.pptVIP

Python语言实用教程第12章 网络与爬虫.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * 12.3 电子邮件 【例12-6】 Python POP3协议收取邮件。 12.3 电子邮件 【例12-7】 通过POP3下载邮件,来获取最新的一封邮件内容: 12.3 电子邮件 resp, lines, octets = server.retr(index); # lines存储了邮件的原始文本的每一行,可以获得整个邮件的原始文本: print(lines); msg_content = \r\n.join(str(lines)) msg = Parser().parsestr(msg_content) # 稍后解析出邮件,Parser()功能需要自己补充 # 可以根据邮件索引号直接从服务器删除邮件:server.dele(index) server.quit() # 关闭连接 【例12-7】 通过POP3下载邮件,来获取最新的一封邮件内容: 用POP3获取邮件其实很简单,要获取所有邮件,只需要循环使用retr()把每一封邮件内容拿到即可。真正麻烦的是把邮件的原始内容解析为可以阅读的邮件对象。 什么是爬虫 所谓爬虫即网页抓取,是请求网站并且提取自己所需的数据的一个过程。此过程类似于使用IE浏览器,把URL作为HTTP请求的内容发送到服务器端,然后读取服务器端的响应资源。通过Python程序,可以向服务器发送请求,然后进行批量、大量的数据的下载并保存。 12.4 urllib爬虫模块 1 、urllib抓取网页 ①用urllib或urllib2模块简单抓取网页 12.4 urllib爬虫模块 【例12-8】 在Python 2.x用urllib2抓取指定页面示例之一。 可以打开百度主页,右击浏览器中选择查看源代码,会发现也是一样的内容。也就是说上面这段代码将访问百度时浏览器收到的代码全部打印了出来。这就是一个最简单的urllib2的例子。除了“http:”,URL同样可以使用“ftp:”、“file:”等来替代。HTTP是基于请求和应答机制的:客户端提出请求,服务端提供应答。 urllib2用一个Request对象来映射你提出的HTTP请求。在它最简单的使用形式中将要请求的地址创建一个Request对象。通过调用urlopen并传入Request对象,将返回一个相关请求response对象,这个应答对象如同一个文件对象,所以可以在Response中调用read()读取方法。 12.4 urllib爬虫模块 【例12-8】 在Python 2.x用urllib2抓取指定页面示例之二。 可以看到输出的内容和上例urllib2_test01.py输出内容是一样的。 urllib2使用相同的接口处理所有的URL头。例如:可以像下面那样创建一个ftp请求:req = urllib2.Request(/) 12.4 urllib爬虫模块 【例12-10】 在Python 3.x用urllib.request抓取指定页面之三。 使用的编辑器是Idle,在源程序文件中输入程序后,按F5就能运行并显示结果。运行结果如图12-1所示。 图12-1 Python抓取指定页面的程序与抓取到的内容 12.4 urllib爬虫模块 urllib.request是一个隶属urllib的库。代码中用到它的urlopen()函数。 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False) 这个函数返回一个 http.client.HTTPResponse 对象,这个对象又有多种方法,比如read()方法,这些方法都可以在控制台试运行。 full_url= /s?word=Python response = urllib.request.urlopen(full_url) type(response) # class http.client.HTTPResponse response.geturl() # /s?word=Python () #http.client.HTTPMessage object at 0 response.getcode() # 200 表示http状态正常 ②发送data表单数据并抓取网页 12.4 urllib爬虫模块 【例12-11】在Python2.x用urllib2抓取指定页面之四(POST传送数据)。 如果没有传送data参数,urllib2使用GET方式的请求。 ②发送data表单数据并抓取网页 12.4 urllib爬虫模块 【例12-12】在Python 2.x用urllib2抓取指定页面之五(Get传送数据)。 D

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档