案例三 BeautifulSoup之链家二手房

news2024/11/27 12:55:20

本案例用到列表,函数,字符串等知识点,知识点参考链接如下:
python基础知识(一)&输入输出函数
python基础知识(二)&基本命令
python基础知识(三)&常用的内置函数
python基础知识(四)&符串常用的方法
python基础知识(六)&字典
python基础知识(七)& 列表
python基础知识(八)&open函数
python基础知识(九)&函数

完整代码如下:

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import pandas as pd
import csv

def qingqiu(url):
    rq = requests.get(url, headers=headers)
    html = rq.text
    return html

def paser_html(html):
    bs=BeautifulSoup(html,"lxml")
    price_all=[]
    price=bs.select('span[class=""]')
    for p in price:
        price_all.append(float(p.get_text()))

    danjia_all=[]
    danjia=bs.select('div[class="unitPrice"]')
    for d in danjia:
        danjia_all.append(d.get_text().replace("元/平",""))

    loupan_all=[]
    loupan=bs.select('a[data-el="region"]')
    for l in loupan:
        loupan_all.append(l.get_text())

    all=bs.select('div[class="houseInfo"]')
    all_data=[]
    for a in all:
        all_data.append(a.get_text().split('|'))
    huxing=[]
    size=[]
    fangxiang=[]
    zhuangxiu=[]
    louceng=[]
    for i in all_data:
        huxing.append(i[0])
        size.append(float(i[1].replace("平米","")))
        fangxiang.append(i[2])
        zhuangxiu.append(i[3])
        louceng.append(i[4])
    result=zip(loupan_all,danjia_all,price_all,huxing,size,fangxiang,zhuangxiu,louceng)
    return result

def save(result):  # 保存
    with open('长沙二手房.csv', "a", newline='', encoding='utf-8') as f:
        wr = csv.writer(f)
        for a in result:
            wr.writerow(a)

if __name__ == '__main__':
    T_head = ['楼盘', '单价', '总价', '户型', '面积', '方向', '装修','楼层']
    with open('长沙二手房.csv', "a", newline='', encoding='utf-8') as f:
        wr = csv.writer(f)
        wr.writerow(T_head)

    start_ye = int(input("请输入起始页:"))
    end_ye = int(input("请输入终止页:"))
    for y in range(start_ye, end_ye):
        url='https://cs.lianjia.com/ershoufang/pg{}/'.format(y)
        headers = {'User-Agent':'Mozilla/5.0'}
        html=qingqiu(url)
        result=paser_html(html)
        save(result)
        print("爬取第{}页".format(y))

运行后保存的数据如下表所示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1587353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.[[backup@waifu.club]].svh勒索病毒数据怎么处理|数据解密恢复

尊敬的读者: 近年来,随着信息技术的迅猛发展,网络安全问题日益凸显,其中勒索病毒成为了一大威胁。.[[backupwaifu.club]].svh、.[[MyFilewaifu.club]].svh勒索病毒就是其中之一,它以其独特的传播方式和恶劣的加密手段…

嵌入式驱动学习第七周——pinctrl子系统

前言 pinctrl子系统用来控制每个端口的复用功能和电气属性,这篇博客来介绍一下pinctrl子系统。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨…

java数据结构与算法刷题-----LeetCode461. 汉明距离

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或统计1的个数2. 位移操作处理3. Brian Kernighan算法 位运…

构建强大的物联网平台系统架构:关键步骤与最佳实践

随着物联网(IoT)技术的快速发展和广泛应用,越来越多的企业开始意识到搭建一个强大而可靠的物联网平台系统架构的重要性。一个完善的物联网平台可以帮助企业高效地管理和监控各种连接设备,并实现数据的收集、处理和分析。在本文中&…

个人劳保用品穿戴检测系统 安全帽、工服、面罩、防护手套、防护鞋、安全背带穿戴检测等

背景 在工业生产、医疗护理、消防救援等高风险领域,正确穿戴个人防护装备或劳保用品(PPE:Personal Protective Equipment)是保障人员安全的重要措施,如安全帽、反光衣、安全背带等。然而,现实中往往会出现…

数据结构之排序了如指掌(一)

目录 题外话 正题 排序概念 稳定性 直接插入排序 直接插入排序代码详解 直接插入排序复杂度分析 希尔排序(缩小增量排序) 希尔排序代码详解 小结 题外话 昨晚肚子疼没睡好,今天博客写的确实有点晚(找个借口),我一定会坚持,不辜负热爱我的家人们!! 正题 排序概念 一串…

去掉el-date-picker弹窗默认回显当前月份的方法

打开日期弹窗,默认会显示当前月份,如图 会发现加了穿透::v-deep 样式也不生效 .el-month-table .today .cell {color: pink;font-weight: 400;}要让 popper-class“xclass” :append-to-body“false” 这俩配合着使用…

[Kubernetes[K8S]集群:Slaver从节点初始化和Join]:添加到主节点集群内

文章目录 操作流程:上篇主节初始化地址:前置:Docker和K8S安装版本匹配查看0.1:安装指定docker版本 **[1 — 8] ** [ 这些步骤主从节点前置操作一样的 ]一:主节点操作 查看主机域名->编辑域名->域名配置二&#x…

StylizedGS: Controllable Stylization for 3D Gaussian Splatting

StylizedGS: Controllable Stylization for 3D Gaussian Splatting StylizedGS:3D高斯溅射的可控样式化 Dingxi Zhang, Zhuoxun Chen, Yu-Jie Yuan, Fang-Lue Zhang, Zhenliang He, Shiguang Shan, and Lin Gao1 张定西,陈卓勋,袁玉洁&#x…

赋能力量,幸福花开 ——罗湖区懿米阳光开启全职妈妈社工培育计划

最美人间四月天,不负春光不负卿。 四月,迎来了全国社会工作师考试报名的日子,罗湖区全职妈妈妇联与罗湖区阳光妈妈妇联在服务过程中发现,全职妈妈们有获得社会工作师职业资格证的需求,为了更好地针对这一需求&#xf…

关于部署ELK和EFLKD的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana(展示数据可视化界面)1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…

使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…

三款好用的 Docker 可视化管理工具

文章目录 1、Docker Desktop1.1、介绍1.2、下载地址1.3、在Windows上安装Docker桌面1.4、启动Docker Desktop1.5、Docker相关学习网址 2、Portainer2.1、介绍2.2、安装使用 3、Docker UI3.1、介绍3.2、安装使用3.2.1、常规方式安装3.2.2、通过容器安装 Docker提供了命令行工具&…

Docker Redis Debian服务器版

1.使用官方安装脚本自动安装docker 安装命令如下: curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh 如果安装提示 -bash sudo command not found 则需要 #update sudo apt-get update sudo apt-get install sudo再执行安装脚本1 安装…

STM32学习和实践笔记(9): 使用位带操作实现LED闪的实验

控制GPIO的那些寄存器,都在位带区。 根据上一篇讲的原理,要想每次只操作这些寄存的某一个bit而不影响别的bit,可以使用与这些bit相对应的位带别名区。 因此,在使用GPIO的位带操作之前,先要按上篇讲的原理&#xff0c…

从 Oracle 到 MySQL 数据库的迁移之旅

文章目录 引言一、前期准备工作1.搭建新的MySQL数据库2 .建立相应的数据表2.1 数据库兼容性分析2.1.1 字段类型兼容性分析2.1.2 函数兼容性分析2.1.3 是否使用存储过程?存储过程的个数?复杂度?2.1.4 是否使用触发器?个数&#xff…

知识图谱与人工智能:携手共进

知识图谱与人工智能:携手共进 一、引言:知识图谱与人工智能的融合 在这个数据驱动的时代,知识图谱与人工智能(AI)之间的融合不仅是技术发展的必然趋势,也是推动各行各业创新的关键。知识图谱,作…

[C++][算法基础]树的重心(树图DFS)

给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后&a…

Unity之PlayableGraph实现动画的正播和倒播

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之PlayableGraph实现动画的正播和倒播 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&am…

python-study-day1

ps:前言 可做毕设,html,web,app,小程序,bug修改,可加急 作者自述 作为一名前端开发工程师,这个大环境不好的情况下,我试过我前端接单子但是没有后端&#xff0c…