链家网租房信息爬虫


前言

毕业将近,大部分学生出去实习或工作面临找租房的压力,此项目设计和实现了一个爬取链家网站租房信息的爬虫;该项目的功能:对爬取的网络资源进行分析,分析指定城市不同区域租房信息的并给出相关对比分析图。


一、网页分析

通过F12打开浏览器自带的抓包工具,点击查看源代码,然后就得到了网页源码中含有的第一套房的信息,通过对上图进行分析,可以通过正则表达式来获取到每个二手房详情页的url。

经过对比发现第一页每一套房的html格式都如上图类似,只有href不一样,那么我们就可以用正则表达式来提取。
代码如下:

re_f = '<a class="twoline" target="_blank" href="(.*?)"' 
url_list = re.findall(re_f, html)
url_list = ['https://cd.lianjia.com' + str(j) for j in url_list]

通过上面的正则表达式,我们可以拿到第一页所有房屋详情页的url
在这里插入图片描述

二、详情页分析

进入详情页后,方法类似,F12查看源代码,找到我们需要爬取的数据,观察它的标签结构和属性,在代码里就可以通过Xpath对网页源码就行解析,这样就能得到想要的数据了
在这里插入图片描述
部分代码如下:

title = html.xpath("//p[@class='content__title']")  #获取标题
location = html.xpath("//i[@class='gov_title']//a/text()" #获取位置
info = html.xpath("//li[@class='fl oneline']/text()") #获取相关信息
area=html.xpath("//ul[@class='content__aside__list']/li/text()")[1] #获取面积

到这里位置,我们就已经把第一页的所有房屋信息爬取到了并存储到了列表datalist中
如图所示:
在这里插入图片描述

三、不同页码的爬取

链家网站分区分页的url是由首页的的url+各区的拼音+pg页码构成的,通
过遍历各区和页码列表我们想要的网页的url。

在这里插入图片描述
首先把各个区域的基础url保存下来
代码如下:

baseurl = ["https://cd.lianjia.com/zufang/jinjiang/pg",
               "https://cd.lianjia.com/zufang/qingyang/pg",
               "https://cd.lianjia.com/zufang/wuhou/pg",
               "https://cd.lianjia.com/zufang/gaoxin7/pg",
               "https://cd.lianjia.com/zufang/chenghua/pg",
               "https://cd.lianjia.com/zufang/jinniu/pg"]

对于爬取不同网页可以通过for循环依次增加页数
代码如下:

for j in range(1, 35):
  url = baseurl + str(j) + "l0/#contentList"
  html = askURL(url)

四、多线程爬取数据

因为单线程爬取效率不高,时间花销大。考虑使用线程池爬取不同网页。
代码如下:

pool = threadpool.ThreadPool(30)            
    requests = threadpool.makeRequests(get_Info, url_list)
    [pool.putRequest(req) for req in requests]
    pool.wait()

总结

以上就是整个项目我负责的所有内容,本文仅仅简单介绍了爬虫的基础应用,因为是第一次写,代码会有一点冗余。在这次项目的编写中,最大的收获就是发现了自己能力的不足。在今后的学习生活中,一定做到不懂就问,提高自主学习的能力和锻炼自己的动手能力。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值