Python爬虫——使用lxml解析器爬取汽车之家二手车信息晴空行

本次爬虫的目标是汽车之家的二手车销售信息,范围是全国,不过很可惜,汽车之家只显示100页信息,每页48条,也就是说最多只能够爬取4800条信息。

由于这次爬虫的主要目的是使用lxml解析器,所以在信息的查找上面完全只会涉及lxml中选择器的用法,虽然lxml可以同时使用CSS选择器和Xpath选择器,但是为了更加突出效果,暂且只使用Xpath。

爬虫老套路,分为3个步骤:

网页结构分析的一般思路是先找到第一个需要爬取的链接,然后看看后面的链接是以什么方式构成的,进而选择一种方式全量爬取(一般使用循环或者递归的方式)。

第一页的链接很容易得到,然后可以看到,二手车的信息总计只有100页,每页48个信息,也就是总共有4800个信息可以爬取到。

通过上面的分析,构造所有100页的链接是件很简单的事情,只需要把链接中的数字部分循环替换一下就行了,这就是循环的方式了。这个方式对付这种链接很有规律的URL在适合不过了,具体参考代码:

所谓递归,首先找到一个递归的出口,也就是爬虫的终点。对于这个爬虫,终点就是当爬到第100页的时候就要结束,既然思路明确了,那可以看看第100页与其他页面有什么不同。

通过分析,可以看到1-99页都有一个“下一页”的按钮,而最后一页是没有这个按钮的,这就是出口。只需要设置一个判断就行了:

html=requests.get(url,headers=self.headers).text这一句是通过requests来获取网页结构,形成标签树。

每当找到“下一页”这个按钮,就执行if下面的代码,也就是把找到的下一页链接放入函数中去继续执行,这就形成了递归。当然,前面也说过了,只有1-99页是有这个按钮的,所以到了第100页就找不到这3个字了,这里的if判断就会停止执行,递归也就结束了。

这一段就是递归的判断:

这段代码就是提取每个页面的所有二手车链接,并且对每个链接执行函数去提取有效信息:

每个主页是一个单独的链接,所以可以写一个函数,传入一个url,然后输出需要提取的信息就行了,具体代码如下:

提取的方式依然是使用xpath选择器,由于有的信息格式不符合之后要保存的格式,所以使用python的基本方法稍微处理了一下。

最后,再保存信息之前,只用print打印一下提取到信息,查看信息的完整性和准确性。

这样,一个爬虫的前2步就已经完成了,剩下一的就是选中一个合适的方式将信息储存起来。数据库是个好工具,mongodb更是一个好数据库,没错,就是你了!

由于爬虫的信息不需要太明确的关系,主要目的是存储信息,所以数据库的选择上优先选择mongodb,这种非关系型数据库真是最好不过了。

首先需要导入相应的数据库工具库

frompymongoimportMongoClient然后是连接数据库,由于这个爬虫是写到一个AutohomeSpider类中,因此可以在初始化的时候直接链接指定的数据库,并且可以同时创建表格。

具体代码如下:

self.coon=MongoClient('localhost',27017)self.coll=self.coon['autohome']['Oldcars']上述代码可以看到,连接了本地mongodb之后,可以直接创建之前不存在的数据库和数据表。

mongodb插入信息的方式非常简单,只需要将数据存放到一个字典中,然后使用insert()方法就行。

具体插入信息的代码在上面代码中的

self.coll.insert(dic)也就是每爬取一条信息就存入mongodb中。

最后爬虫结束,可以使用第三方可视化工具查看一下mongodb中存储的数据:

爬虫比较简单,爬取的信息也没有多大的价值,因此不做后续深入研究,这个爬虫主要是为了介绍lxml解析器和Xpath选择器。

THE END
1.汽车之家汽车之家为您提供最新汽车报价,汽车图片,汽车价格大全,最精彩的汽车新闻、行情、评测、导购内容,是提供信息最快最全的中国汽车网站https://www.autohome.com.cn/
2.汽车之家二手车的微博汽车之家二手车,汽车之家二手车官方微博。汽车之家二手车的微博主页、个人资料、相册。新浪微博,随时随地分享身边的新鲜事儿。https://weibo.com/che168che
3.二手车之家买车卖车估值汽车之家二手车,是汽车之家旗下二手车全业务交易平台,买卖更放心!【关于我们】依托于汽车之家强大的用户大数据和深度的专业性,以及得益于平安集团雄厚的资金后盾,打造一个放心、省心、称心的二手车交易平台。【买车服务】覆盖全国400个城市,海量真实可靠在售车源,累计合作商家万余家,专业审核团队严格把控,精准满足您https://app.xiaomi.com/details?id=com.autohome.usedcar
4.汽车之家二手车之家懂车帝提供汽车之家二手车之家的详细内容,懂车帝是一个汽车资讯平台,懂车更懂你。我们提供最新汽车报价,汽车图片,汽车价格大全,行情、评测、导购等内容,看车选车买车就上懂车帝。https://www.dongchedi.com/tag/pgc/9816713
5.汽车之家怎么发布个人二手车发布个人卖车信息方法在汽车之家中,用户是可以发布自己的卖车信息的,这样别的用户就可以看到你发布的卖车信息了。汽车之家怎么发布个人二手车?下面小编就来为大家介绍一下发布个人卖车信息的方法。 汽车之家怎么发布个人二手车? 1、首先打开汽车之家app,点击右下方【二手车】 https://shouyou.3dmgame.com/gl/332380.html
6.二手车之家二手车交易市场二手车app二手车之家,线上二手车交易市场,二手车网,提供全国二手车报价,全国二手车评估,全国商家,认证,个人二手车信息,买卖二手车就上二手车之家。https://www.athmapp.com/apps/2sc/
7.十大二手车交易平台介绍哪家比较好十大品牌汽车之家旗下二手车交易平台,免费发布全国二手车出售、转让信息,专业整合二手车行业资源为买卖双方提供及时的交易信息服务。 二手车之家 二手车之家查看详情 六、淘车TAOCHE 易鑫集团旗下互联网汽车零售交易平台,提供新车/二手车/汽车交易相关的增值服务一站解决方案的企业。 https://www.chinapp.com/shidapinpai/192528