首页 > 编程语言 >利用python爬取某壳的房产数据

利用python爬取某壳的房产数据

时间:2024-05-05 20:00:39浏览次数:26  
标签:某壳 title python text per 爬取 div children append

以无锡的某壳为例进行数据爬取,现在房子的价格起伏很快,买房是人生一个大事,了解本地的房价走势来判断是否应该入手。

(建议是近2年不买,本人在21年高位抛了一套房,基本是通过贝壳数据判断房价已经到顶,希望此爬虫能够帮到各位。)

这里只爬了必看好房的数据,贝壳有放抓机制,无法跑全所有数据,有心的可以拿过去扩展一番。

import requests
from pyquery import PyQuery as pq
import json
import pandas as pd
import datetime,time
columns = ['id','title','place','msg', 'price', 'per_meter','area','city']
areas=['滨湖区','梁溪区','新吴区','惠山区','锡山区','江阴市','宜兴市']
# 爬取某网页
def get_a_page(url,area):
    result = requests.get(url)
    doc = pq(result.text)
    ul = doc('.sellListContent')
    divs = ul.children('.clear .info.clear').items()
    count = 0
    realids=[]
    titles = []
    places = []
    msgs = []
    prices = []
    per_meters = []
    realarea=[]
    citys=[]
    for div in divs:
        count += 1
        realid=div.children('.address .priceInfo .unitPrice').attr('data-hid')
        title = div.children('.title a').text()
        place = div.children('.address .flood .positionInfo a').text()
        msg = div.children('.address .houseInfo').text()
        price = div.children('.address .priceInfo .totalPrice span').text()
        per_meter = div.children('.address .priceInfo .unitPrice span').text()
        city='无锡'
        dict = {
            'id':realid,
            'title': title,
            'place': place,
            'msg': msg,
            'price': price,
            'per_meter': per_meter,
            'area':areas[area],
            'city':'无锡'
        }
        realids.append(realid)
        titles.append(title)
        places.append(place)
        msgs.append(msg)
        prices.append(price)
        per_meters.append(per_meter)
        realarea.append(areas[area])
        citys.append(city)
        print(str(count) + ':' + json.dumps(dict, ensure_ascii=False))
    datas={
        'id':realids,
        'title': titles,
        'place': places,
        'msg': msgs,
        'price': prices,
        'per_meter': per_meters,
        'area':realarea,
        'city':citys
    }
    df = pd.DataFrame(data=datas, columns=columns)
    df.to_csv('wx'+time.strftime('%Y-%m-%d')+'.csv', mode='a', index=False, header=False)

if __name__ == '__main__':
    quyu=['binhu','liangxi','xinwu','huishan','xishan','jiangyinshi','yixingshi']
    index=0
    for qy in quyu:
        #print (index)
        #print (qy)
        for i in range(1, 20):
            get_a_page(f'https://wx.ke.com/ershoufang/{qy}/pg{i}tt9/',index)
        index=index+1

 

标签:某壳,title,python,text,per,爬取,div,children,append
From: https://www.cnblogs.com/xyz7885696/p/18173800

相关文章

  • Mac更新python3.12 解决pip3安装报错
    Mac使用homebrew更新了python3.12,删除了以前的版本和pip3安装软件时候报错。error:externally-managed-environment×Thisenvironmentisexternallymanaged╰─>ToinstallPythonpackagessystem-wide,trybrewinstallxyz,wherexyzisthepackageyouare......
  • python交教程4:文件操作
    文件操作流程人类操作一个word流程:1、找到文件、双击打开2.读或修改3.保存&关闭⽤python操作⽂件也差不多: 只读模式 创建模式 追加模式 遍历文件 图片视频--二进制文件 其他方法 打开文件--混合模式 ......
  • 精通-Python-正则表达式(全)
    精通Python正则表达式(全)原文:zh.annas-archive.org/md5/3C085EA0447FEC36F167335BDBD4428E译者:飞龙协议:CCBY-NC-SA4.0前言自计算机科学迈出第一步以来,文本处理一直是最重要的话题之一。经过几十年的研究,我们现在拥有了最多才多艺和无处不在的工具之一:正则表达式。验证、......
  • Python全栈开发
    【Python初级】【一】计算机基础【二】编程语言和Python语言介绍【三】Python解释器和Pycharm的按照【四】常量和变量【五】垃圾回收机制【六】基本数据类型【七】程序与用户交互【八】基本运算符【九】流程控制语句【Python中级】【一】数据类型的内置方法【二】可变......
  • VScode和python解释器
    VScode下载https://code.visualstudio.com/安装VScode找到下载的.exe文件,以管理员身份运行勾选我同意此协议,点击下一步修改安装路径,最好放在C盘以外的盘,点击下一步默认即可,点击下一步勾选如下图所示条目即可,点击下一步点击下一步等待安装完成下载Python解释器......
  • Python自动化测试中JSON数据处理遇到的错误
    在接口自动化测试领域,使用Excel管理测试数据是一种常见的做法。本文将分享一个实际案例,介绍在Python自动化测试框架中,如何从响应结果中提取所需数据,并探讨在处理JSON格式数据时遇到的一个典型问题及其解决方案。首先,让我们了解测试数据的基本格式。在Excel中,我们定义了一个名为ex......
  • Windows系统,在Pycharm里面(python3.9)下载dlib的依赖包的具体步骤
    原文作者:传送门1、进入网址轮子地址然后选择这个下载:2、保存到自己的项目里面,然后使用pip的命令下载pip命令如下:pipinstalldlib-19.23.0-cp39-cp39-win_amd64.whl使用piplist的命令查看已经下载的包:dlib依赖包下载完成!......
  • Python进阶篇笔记
    一、面向对象1、面向过程与面向对象面向过程:把程序流程化面向对象:把程序抽象成类,类与类之间有联系2、类与对象对象就是容器,是用来存放数据和功能的,对象就是数据和功能的集合类的作用是吧对象做区分和归类,以及解决不同对象存相同数据的问题。类也是容器,也是用来存放数据和......
  • Python-Web-渗透测试秘籍(全)
    PythonWeb渗透测试秘籍(全)原文:annas-archive.org/md5/9ECC87991CE5C1AD546C7BAEC6960102译者:飞龙协议:CCBY-NC-SA4.0前言欢迎阅读我们的Python和Web应用测试书。渗透测试是一个庞大的领域,而Python的领域更加广阔。我们希望我们的小书可以帮助您更好地管理这些庞大......
  • Python-渗透测试秘籍(全)
    Python渗透测试秘籍(全)原文:annas-archive.org/md5/A471ED08BCFF5C02AB69EE891B13A9E1译者:飞龙协议:CCBY-NC-SA4.0前言Python是一种动态但解释性语言,属于高级编程语言。凭借其清晰的语法和丰富的库,它被用作通用语言。基于Python的解释性质,它经常被视为一种脚本语言。Pyt......