使用requests获取58同城北京二手房信息

使用requests库,pyquery库获取58同城北京二手房信息导入到csv文件当中

import requests
from pyquery import PyQuery as pq
import csv
f = open('58同城北京二手房信息.csv', 'w', newline="", encoding='gbk')  # 创建文件对象
csv_write = csv.DictWriter(f, fieldnames=['小区名称', '地址', '总价', '每平价格', '房间个数', '大小', '建造时间'])
csv_write.writeheader()  # 写入文件头
#请求头cookie是根据个人的账号登录来设置的
cookie = ''
proxies = {
    "http": "http://123.185.0.192",
    "https": "http://123.185.0.192"
}
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52",
    'Cookie': cookie
}
MingCheng=[]#小区名称
SuoZaiDi=[]#所在地
ZongJie=[]#总价格
MeiPing=[]#每平价格
FangJian=[]#房间
MianJi=[]#面积
JianZu=[]# 建筑时间
# 批量获取网页数据
for i in range(50):
    url = "https://cn.58.com/ershoufang/p{}/?PGTID=%5B%220d100000-008d-2641-7e1b-fc57f33f6aee%22,%220d30000c-0000-1b5a-2bb9-3df5d012e970%22%5D&ClickID=1".format(
        i)
    r = requests.get(url, headers=headers)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    demo = r.text
    dec = pq(demo)
    for inf in dec.find('.property-content'):
        global ws
        # 获取全部楼盘信息
        v = pq(inf)
        # 获取其中的小区名称
        d = v(".property-content-info-comm-name").text()
        # 获取小区所在地
        q = v(".property-content-info-comm-address").text()
        #         获取总价格
        f = v(".property-price-total-num").text() + "万"
        #         获取每平价格
        g = v(".property-price-average").text()
        #         房间
        h = v(".property-content-info-text").text()
        s = h[:11]
        #         面积
        k = v(".property-content-info-text:nth-child(2)").text()
        #         建筑时间
        o = v(".property-content-info-text:nth-child(5)").text()
        MingCheng.append(d)
        SuoZaiDi.append(q)
        ZongJie.append(f)
        MeiPing.append(g)
        FangJian.append(s)
        MianJi.append(k)
        JianZu.append(o)
        for j in range(len(MingCheng)):  
            data_dict = {'小区名称': MingCheng[j],'地址':SuoZaiDi[j],'总价':ZongJie[j],'每平价格':MeiPing[j],'房间个数':FangJian[j],'大小':MianJi[j],'建造时间':JianZu[j]}
            csv_write.writerow(data_dict)
    print('第{}页爬取成功'.format(i + 1))

在其中如果出现了一些提醒GBK问题,我这里的解决方法是将编辑器的编码从UTF-8改为GBK,这样就解决这个报错问题
在写代码期间个人遇见的问题,在未登录的状态的时候,使用requests去获取其中的html结构会有部分内容看不见,所以建议先登个陆
反复访问多的话,平台会进行验证,这个在代码当中还没有写入,所以需要自己手动解决

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值