阅读文本大概需要 8 分钟。
最近自己开始学习数据分析的技术,但数据分析最重要的就是数据。没有数据怎么办?那就自己爬一些数据。大家一定要记得爬虫只是获取数据的一种手段,但如果不用一系列科学的方式去分析这些数据,那么爬去下来的数据是毫无用处的。所以爬虫进阶的方向很容易就可以对接到数据分析,我现在就是在往数据分析这个方向靠近。
而今天我们要分析的是链家上海出租房一些信息,从中找出性价比高的租房信息。这是一个系列的文章,我会从最开始的数据获取开始讲解,带大家一步步的完成一个数据分析的过程。话不多说,先来看下链家爬虫代码。
分析目标页面结构
写一个爬虫程序第一步就是分析下这个网页的请求结构和一些链接的变化情况,看看是不是否有规律可循,看看页面是否是动态加载,还是 ajax 加载的。
所以我们先打开链家的网站,先简单的浏览下。
简单的浏览之后,我们就很容易找到链家的规则,即链家下一页的链接都是把 url 最后的 pg 数字给修改下,直至最后一页。
这样我们的爬虫程序思路就有了,首先请求要爬取的页面,获取最大页数,然后用一个 for 循环请求页面直至结束。接下来看下具体的代码实现。
程序结构
程序结构很简单这里我创建了一个 LianJianSpider 的类,在初始化函数中,我定义了一些变量,其中还用到了之前给大家讲解到的 fake_useragent 库,用来随机生成请求头。
def __init__(self):
self.ua = UserAgent()