爬虫真的很简单嘛,会不会把自己绕的头晕

114 阅读2分钟

举个爬虫实例:链家二手房数据爬取

image.png 首先我们先进入页面进行简单的分析,拿安庆租房来做实例共7483套,哎是不是很多小伙伴就以为直接爬取下边的数据就可以了?那话不多说先爬为敬

image.png 找取网络的文档链接进行右键的复制,再通过转换为json文件直接可以省去很多繁琐的步骤,导入lxml第三方库

image.png

image.png 我一般比较喜欢用mongodb来存储数据库,小伙伴们随意哈,得到租房的链接后,三部曲走一走

image.png 注:为了方便的话,比如:IP的代理切换可以封装为一个函数中,方便下一次需要的调用

image.png 先微爬一些,但可以发现共一百页,但有4000多条数据???

image.png 嗯,四千是大于三千的,所以数据依然缺失了

我们就要思考拿房源的商圈下的房子是不是就可以实现完整的抓取呢? just TRY

image.png 区下可以取到很多我们需要的房源,但仅仅是一个商圈下的房源,当然我们要做大做强 image.png 那就打,把他们市下的所有区给遍历掉

image.png 让区进行与商圈的拼接,进行多个的写入,实现点击进入且能直接遍历爬取房价的信息量

image.png 就这样就结束了嘛?数据是拿到了,但漏洞还是很多的比如:房子的重复,这些就需要后期的数据清洗了

image.png 还没完,区都拿到了,拿个市不过分吧,我接着再摸索,接着再循环,试试?

image.png 市区拿到后,我们现在就要对整体的布局思路进行整理了,比如原本链接中url默认的为一所城市,就要改为我们所遍历的市区链接了

image.png 拿到这些后,再将下边的代码进行放开,实现多个市下的区下的商圈下的房源爬取,嘿嘿嘿,哈哈哈你没有听错就是套娃,也就像之前一样,从小做大,由入门到入狱的过程不是吗

image.png 如果还不满足于此,就请继续前行,爬取他的二手房源的内容,来吧少年我们当不止步于此的.

image.png

image.png

response = requests.get(url, headers=headers, proxies=proxies)
result = response.content.decode()
root = etree.HTML(result)
county_list = root.xpath("//div[@class='city_province']/ul/li/a")
for city in county_list:
    city_name = "".join(city.xpath(".//text()"))
    city_href = "".join(city.xpath(".//@href"))
    print(city_name, city_href)