python 爬虫 入门 commit by commit -- commit4

"太极生两仪,两仪生四象,四象生八卦我不懂,但是写程序嘛,都是0到1,1到N。" --by 我自己

代码你可以在https://github.com/rogerzhu/relwarcDJ 上得到,并且带有我完整的commit记录。

这个commit想做到的是不仅仅只能够爬取到首页的内容,希望能够看到第二页,甚至第N页的内容。在reset到相应的commit之后,使用如下命令:

你应该能看到如下的结果:

你可以很容易的去对应网站上去查看一下,这里可以爬到第二页的结果了。

其实如何能够翻译,其唯一的难点就是找到每一页的链接,唯一的顾虑就是每一页的链接没有规律,比如会带一个随机数等等。但是无论如何,尝试是迈向程序成功的第一步。所以,还是按照之前的三板斧,把页面滚到最底部有页码的地方,使用选取工具放在第2页上面,你会得到一个类似这样的链接,不,如果你随意扫一下是这样的一组链接:

这里你能得到两个信息,一是第二页的链接,第二个就是每一页的链接都是有规律的,除了页码数字变化,没有任何变化。喜出望外,大喜至极是不是?这就说明了,循环是一个靠谱的选择嘛!这也就是为什么从commit1里面就有的nTestCount在这里就会发生作用了!

从66行开始,先使用刚才三板斧获取的结果加上页码获得新的网页源码,剩下的因为每一页的结构都是一样的,所以事情就变得异常简单了。将获取的源码放到BeautifulSoup中,重新构造一下新的allItemInfo,保险起见,我会采取先清空的方式。因为我这个人,还是比较谨慎的。

有了前面的积累,这个commit就真的只有这么多内容,这和写程序很像。最开始是比较慢的,但是后面会越来越快。我的commit里只有2页,而你只要把nTestCount改成50,你就有50页了。当然页数一多,时间就会变长,况且我这里还没有加入防御性的sleep。而时间一长,不可控的事情就越多,也许你人品真的很好,50页甚至500页都一次性跑完了并且没有任何的错误。但是大多数时候,这种爬虫程序会因为网络不稳定或者种种原因,crash了。这时候你会感到痛心疾首。想象这么一个场景,在12点的时候你长舒一口气,带着成就感与满足感开始运行的你的爬虫,想着一觉醒来就有数据了,而这个时候自己又得到了休息,自己简直是一个统筹学的天才。但是,第二天醒来,你发现你的爬虫在循环的第三次就crash了。你看着屏幕上输出的trace back,一边心里想,我TM才不想知道到底网络出了什么问题,一边觉得自己似乎失去了一个晚上。所以,爬虫,不能没有异常处理。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏木子昭的博客

<技术贴>当图虫遇到爬虫...根据”分类名称”,获取json数据根据json数据,获取图集url与title爬虫架构:运行界面:最终效果

首先,图虫网是一个很棒的图片网站,这里的爬虫只是为了研究技术,请读者朋友们,不要大量采集网站信息,爬取的图片,请取得版权后再使用... ? 图虫网 根据”分类...

3499
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–现金管理(160)-14银企对账-客户收款-承兑汇票-F-36收到承兑汇票

4.5.2 F-36收到银行承兑汇票 收到客户银行承兑汇票支付应收账款,形成财务记账如下: 借:应收票据 贷:应收账款 ? 输入凭证日期、参照、抬头文本 回...

2958
来自专栏YouMeek

1.3 Elasticsearch Document(文档)的管理

课程环境 CentOS 7.3 x64 JDK 版本:1.8(最低要求),主推:JDK 1.8.0_121 Elasticsearch 版本:5.2.0 相关软...

4336
来自专栏JadePeng的技术博客

HTML5录音控件

最近的项目又需要用到录音,年前有过调研,再次翻出来使用,这里做一个记录。 HTML5提供了录音支持,因此可以方便使用HTML5来录音,来实现录音、语音识别等功能...

1.2K5
来自专栏Crossin的编程教室

【Python 第4课】输入

Hi~Crossin又来了。 可以用编程语言让计算机按你说的指令做事情之后,大家是不是有些跃跃欲试呢?别着急,先回顾一下我们之前几节课。我们到现在一共提到了三种...

3167
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(十六):列表分页功能

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

1411
来自专栏杨建荣的学习笔记

dg的奇怪问题终结和分区问题答疑 (r7笔记第77天)

今天来说几个问题,一个是对昨天《让我焦灼的四个问题》的升华,不能起博眼球的题目,技术分析给大家兜底了,你们看看有没有类似的问题。 还有几个小问题说说今天的感受和...

3455
来自专栏编程微刊

Jquery前端分页插件pagination使用

7494
来自专栏技术总结

Python爬取电影天堂

摘取部分网友的回复: 1、之前在北京买房,谁想房价开始疯长,链家的房价等数据分析只给了一小部分,远远不能满足自己的需求。于是晚上花了几个小时的时间写了个爬虫,...

1323
来自专栏FreeBuf

物理黑:关于HID的一些攻击姿势解析

本文原创作者:mrzcpo 本文内容带有一定的攻击性,仅供学习交流使用,严禁用于非法用途 临近期末考试了,利用烧鹅配合一个简单的木马程序其实可以轻松的从老师的电...

2087

扫码关注云+社区