房地产市场研究遇到Python爬虫

房地产的发展要看经济水平,居民的消费水平是衡量一个城市经济水平的重要指标,部门接了一个廊坊市的市场调研项目,于是想到大众点评看看各种排行榜,

一是看看有啥好吃好玩的,二是从另一个角度去理解当地的市场 / 消费水平。


一、需求分析

查到廊坊市大众点评各个排行榜中的商家信息,通过店铺人均消费判断当地的消费水平。

二、代码逻辑

先获取各个排行榜的链接

各个排行榜的href的位置在 id = "rankNavContainer" 的div中。可考虑用BeatifulSoup解析网页,find(id = "rankNavContainer")

分别获取排行榜数据

页面采用XHR加载,可以直接看到排行榜商家信息列表,由此可以考虑用JSON模块解析页面数据

再来看页面的Headers,Request URL 和第一步获取的链接有所不同,不能直接使用。rankId相同,可使用replace()函数进行替换

href="/shoplist/shopRank/pcChannelRankingV2?rankId=7acb1683f1cc89810888f620c792da28" 
#find获取的href

http://www.dianping.com/mylist/ajax/shoprank?rankId=7acb1683f1cc89810888f620c792da28 
#Request URL

 

 

附上最终代码

import requests,bs4,time,json

w = open('H:/dianpin.csv','w',encoding='utf-8')
url_1 = 'http://www.dianping.com/shoplist/shopRank/pcChannelRankingV2?rankId=7acb1683f1cc89810888f620c792da28' 
headers = {'Cookie': 'td_cookie=2464111219; _lxsdk_cuid=1690e07db3dc8-00119572b83533-57b1a3f-1fa400-1690e07db3ec8; _lxsdk=1690e07db3dc8-00119572b83533-57b1a3f-1fa400-1690e07db3ec8; _hc.v=93b7e7fa-41e7-eaf4-350f-db49d1812089.1550718590; cy=33; cye=langfang; _lxsdk_s=1690e07db3e-487-31e-98f%7C%7C324'
,'Host': 'www.dianping.com'
,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.64 Safari/537.36'
,'X-Requested-With': 'XMLHttpRequest'
           }

#直接从排行榜单中获取各个榜单链接

html_1 = requests.get(url_1,headers = headers).text
bs_data_1 = bs4.BeautifulSoup(html_1,'html.parser')
url_2_data = bs_data_1.find(id="rankNavContainer").find_all('a')
for url_2_t in url_2_data[1:]:
    url_2 = "http://www.dianping.com{}".format(url_2_t['href'].replace('/shoplist/shopRank/pcChannelRankingV2?','/mylist/ajax/shoprank?'))
    print(url_2_t.text)
    #print(url_2)
    html_2 = requests.get(url_2,headers = headers).content
    #print(html_2)
    js_data = json.loads(html_2)['shopBeans']

    try:
        num = 0
        for data in js_data:
            num += 1
            name = data['shopName']
            CategoryName = data['mainCategoryName']
            mainRegionName = data['mainRegionName']
            avgPrice = data['avgPrice']

            w.write("{} ,{} ,{} ,{} ,{} ,{}\n".format(num,name,url_2_t.text,CategoryName,mainRegionName,avgPrice))
            w.flush()
    except TypeError:
        pass

返回数据

通过自定义切片器可以看到各个商圈的消费情况,具体分析略~~~。

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python爬虫是一种用于自动化获取网页数据的技术,可以用于爬取各种网站上的信息,包括房地产数据。以下是使用Python爬虫获取房地产数据的一般步骤: 1. 导入所需的库:使用Python的requests库发送HTTP请求,使用BeautifulSoup库解析HTML页面。 2. 发送HTTP请求:使用requests库发送GET或POST请求,获取房地产网站的HTML页面。 3. 解析HTML页面:使用BeautifulSoup库解析HTML页面,提取所需的数据。 4. 数据处理和存储:对提取到的数据进行处理和清洗,可以使用Pandas库进行数据处理和分析,然后将数据存储到数据库或者CSV文件中。 下面是一个简单的示例代码,用于爬取某个房地产网站上的房源信息: ```python import requests from bs4 import BeautifulSoup # 发送HTTP请求,获取HTML页面 url = "http://example.com/estate" response = requests.get(url) html = response.text # 解析HTML页面,提取房源信息 soup = BeautifulSoup(html, "html.parser") house_list = soup.find_all("div", class_="house") for house in house_list: # 提取房源信息的各个字段 title = house.find("h2").text price = house.find("span", class_="price").text area = house.find("span", class_="area").text # 打印房源信息 print("标题:", title) print("价格:", price) print("面积:", area) print() # 数据处理和存储 # 这里可以使用Pandas库对数据进行处理和分析,然后将数据存储到数据库或者CSV文件中 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值