Python爬虫实战课件.docxVIP

  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文档。上传文档
查看更多
Python爬虫实战 Python爬虫实战(1):爬取糗事百科段子 大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧。那么这次为大家带来,Python爬取糗事百科得小段子得例子。 首先,糗事百科大家都听说过吧?糗友们发得搞笑得段子一抓一大把,这次我们尝试一下用爬虫把她们抓取下来。 本篇目标 1。抓取糗事百科热门段子 2、过滤带有图片得段子 3。实现每按一次回车显示一个段子得发布时间,发布人,段子内容,点赞数。 糗事百科就是不需要登录得,所以也没必要用到Cookie,另外糗事百科有得段子就是附图得,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图得段子吧、 好,现在我们尝试抓取一下糗事百科得热门段子吧,每按下一次回车我们显示一个段子。 1.确定URL并抓取页面代码 首先我们确定好页面得URL就是 ,其中最后一个数字1代表页数,我们可以传入不同得值来获得某一页得段子内容、 我们初步构建如下得代码来打印页面代码内容试试瞧,先构造最基本得页面抓取方式,瞧瞧会不会成功 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # -*- coding:utf-8 -*— import urllib import urllib2 ? ? page = 1 url = ’ + str(page) try: ????request = urllib2、Request(url) ????response = urllib2。urlopen(request) ????print response。read() except urllib2。URLError, e: ????if hasattr(e,code): ????????print e。code ????if hasattr(e,"reason”): ????????print e。reason 运行程序,哦不,它竟然报错了,真就是时运不济,命途多舛啊 1 2 3 line 373, in _read_status ?raise BadStatusLine(line) httplib。BadStatusLine: ’ 好吧,应该就是headers验证得问题,我们加上一个headers验证试试瞧吧,将代码修改如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # —*- coding:utf—8 —*- import urllib import urllib2 ? page = 1 url = ’’ + str(page) user_agent = Mozilla/4。0 (compatible; MSIE 5、5; Windows NT)' headers = { ’User—Agent : user_agent } try: ????request = urllib2。Request(url,headers = headers) ????response = urllib2。urlopen(request) ????print response、read() except urllib2。URLError, e: ????if hasattr(e,code”): ????????print e。code ????if hasattr(e,reason): ????????print e.reason 嘿嘿,这次运行终于正常了,打印出了第一页得HTML代码,大家可以运行下代码试试瞧。在这里运行结果太长就不贴了。 2.提取某一页得所有段子 好,获取了HTML代码之后,我们开始分析怎样获取某一页得所有段子。 首先我们审查元素瞧一下,按浏览器得F12,截图如下 我们可以瞧到,每一个段子都就是div class=”article? HYPERLINK " \t _blank" block?untagged mb15″ id=”…”…</div包裹得内容。 现在我们想获取发布人,发布日期,段子内容,以及点赞得个数。不过另外注意得就是,段子有些就是带图片得,如果我们想在 HYPERLINK ” \t "_blank" 控制台显示图片就是不现实得,所以我们直接把带有图片得段子给它剔除掉,只保存仅含文本得段子。 所以我们加入如下正则表达式来匹配一下,用到得方法就是 re。findall 就是找寻所有匹配得内容、方法得用法详情可以瞧前面说得正则表达式得介绍、 好,我们得正则表达式匹配语句书写如下,在原来得基础上追加如下代码 1 2 3 4 5 6 content = response.read().decode(’utf—8) pattern = re、compile(〈div。*?class="author、*?〉

文档评论(0)

189****0801 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档