Python爬虫:一个完整的爬取多页短租房的案例!

今天提供一个相对完整的,但程序代码并不复杂的爬虫案例,是爬取一家短租房出租网站的北京房源案例,其中牵扯到多页信息。想当年,笔者在练习爬取股市龙虎榜信息时,就曾遇到多页的烦恼,因为不知道如何应对多页,所以,那时候,只能痒痒的爬取第一页的内容。

欢迎大家加入小编创建的Python行业交流群,有大牛答疑,有资源共享,有企业招人!是一个非常不错的交流基地!群号:683380553

我们先看爬虫输出部分,见图:

限于篇幅,只能截图少许,给读者一个印象而已。输出的内容包括:价格,标题和地址三项内容,当然,可以很方便的爬取更多的内容,但为了简化,只爬取了这三项。请注意,图中是长长的单子的最后面的几项,是爬取网站第5页上的内容的一部分。

我们再看代码并在代码后面按行解释:

这才遗憾的看到,代码前面并没有打上行号。没有关系吧,只要略懂代码,应该可以对应上。

1-3行,是导入相应的模块,这个以前说过,导入time,是为了爬取时中间间隔一段时间,这样才不容易被对方网管发现。当然,第4行是个伪装的浏览器。也是为了不被对方发现,免得设置障碍,不让你爬取相关内容。

下面两个函数,第一个是在给出一个起始网页地址参数后,将网页内部相关的链接网页都提取出来放入列表links中,这个请你在相应代码处,用print函数查看。这样会增加你对代码的理解。 这里还有一个问题,第一个select后面的参数是如何找到的,这个吗?需要你对网站结构要熟悉,仔细看,必要时再补些HTML的相关知识,爬虫是在网络上进行的,网络知识技能越多,将来爬虫遇到问题时才越容易解决。

然后从links列表里一个一个用for循环,来爬取每一个网页的信息,当然是使用下面的自定义的函数。getInfo()。

下面的函数从每一个网页中,用soup返回解析后的网页信息。请自行查看soup的返回类型和内容,当然也是用print。

然后,我们使用了soup中的select方法。这个方法,希望你专门查资料学习,或者目前只是简单的这么理解就行,select将括号参数(标签)的内容以列表的形式返回。然后我们使用for循环遍历每一个列表内元素,并将其中的文本内容提取打印出来,使用了get_text()方法。

最后一段,如果不理解,可以暂时不用管。照着葫芦画瓢吧。

这个案例虽然小,但比较完整,是在我们使用的参考教材(从零开始学Python网络爬虫)的基础上简化而形成的的代码,书中的代码相对复杂,使用了字典和zip等初学者并不熟悉的代码。这样怎么才能契合从零开始?

嗯,一阵风一阵风的,Python流行零基础,但是,真的零基础吗?Python函数,网络知识,怎么也得懂个七七八八吧,更不用说这个零基础学爬虫的书中,直接使用了字典,Zip等初学者并不熟悉的结构。希望读者真正理解Python基础和其他计算机基础的重要性。

猜你喜欢

转载自blog.csdn.net/qq_42156420/article/details/88575927