多线程抓取链家网数据

链家网是集房源信息搜索、产品研发、大数据处理、服务标准建立为一体的以数据驱动的全价值链房产服务平台。主营:二手房、租房、新房。通过链家网的数据可以很方便的获取商品房的市场信息
此次目的是抓取链家网广州地区二手房的数据
首先明确步骤:

  1. 分析网页
  2. 分析数据节点
  3. 编写爬虫程序
  4. 存储数据

首先分析网页
链家网网址在这 广州链家网二手房
链家网二手房首页
可以看到一共有25934套房源,数据是更新的,我爬取得时候是没有这么多数据的
接下来观察网页构造
网页构造
可以观察到一个网页是有30个< li >标签,一个标签对应一个房源信息,而且网页只有100页,我们通过观察发现网页的翻页只是在源地址后面加个pg的变量
在这里插入图片描述但是实测将pg填101会重新跳转到第一页,所以我们一共可以观察到3000的信息,后面的无法获取,需要重新观察
地区分类
通过观察发现可以按照地区的分类进去抓取数据,而且每个地区的成交数量都没有超过3000套。也就是我们可以在100页内将数据全部抓取。
列表页面
通过观察发现各个房源的标签是不一样的,而且实测无法在列表页就实现数据的全部抓取,所以我们只能到房源详情页进行抓取
详情页信息
在这里我们确定我们要抓的数据是售价,平方单价,挂牌价,关注人数,房屋户型,所在楼层等等
那么现在爬虫思路就是

  1. 先爬取所有地区链接
  2. 根据地区链接,在各地区链接下抓取所有列表房源的url
  3. 根据抓取到的房源url进行访问抓取数据
    接下来就是代码的构建了
    首先先抓取所有地区并存储在数据库中:
import requests
from urllib.parse import urljoin
from scrapy.selector import Selector
import pymongo
from fake_useragent import UserAgent


ua = UserAgent()
Mymongo = pymongo.MongoClient('localhost', 27017)  # 连接本地服务
lianjia = Mymongo['lianjia']   # 链接数据库
region_url_collection = lianjia['region_url']  # 集合对象
base_url = "https://gz.lianjia.com/chengjiao/"
region_list = ['tianhe', 'yuexiu', 'liwan', 'haizhu', 'panyu', 'baiyun', 'huangpugz', 'conghua', 'zengcheng', 'huadou', 'nansha']


def get_region_url():
    for i in range(0, len(region_list)):
        url = urljoin(base_url, region_list[i])  # 拼接URL
        response = requests.get(url, headers={'User-Agent': s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2020重新做人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值