案例三 BeautifulSoup之链家二手房

本案例用到列表,函数,字符串等知识点,知识点参考链接如下:
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))

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在Linux通过docker搭建Plik文件系统并实现无公网IP管理内网文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者…

盒子模型+响应式布局 + 原型链与继承

盒子模型 是什么 css布局基础,规定了元素在页面上如何呈现,以及元素之间的空间关系 由content paddingbordermargin四部分组成 为什么 盒子模型分为 标准盒子模型: 元素的宽度与高度 只包括content IE盒子模型: 元素的宽度与高度 包括content,padding,border 在实际操作中…

Python实现时间序列ARIMA模型(附带超详细理论知识和完整代码实现)

文章目录 0 结果1 介绍2 建模2.1 预备知识2.1.1 ADF检验结果(单位根检验统计量)2.1.2 差分序列的白噪声检验(这里使用Ljung-Box检验)2.1.3 ARIMA模型(差分整合移动平均自回归模型)的三个参数:p,…

如何在横向渗透攻击中寻到一线生机

横向渗透,作为计算机网络中的一种攻击技术,展现出了攻击者如何巧妙地利用同一级别系统间的漏洞和弱点,扩大其网络访问权限。与纵向渗透不同,横向渗透不关注权限的垂直提升,而是更侧重于在同一层级内扩展影响力。 横向…

【教程】将Vue项目打包为exe项目的教程-我的第一个原生Vue项目

文章目录 前言项目介绍正文:Vue打包exe过程及注意事项1. (重要)进入我们自己的项目,修改公共路径为相对路径2. (重要)关于VueRouter的必要修改3. 前端打包4. 拉取electron-quick-start项目5. 修改配置文件6…

【Excel】使用VBA宏简单自定义Excel软件界面

改行做经济师学习Excel,偶有心得,摘录于此,备忘。 言简意赅,仅供自用。 1 实现效果 在Excel的左上角可添加按钮,该按钮的功能可由我们自己通过编写代码定义,能实现特定功能,并且在所有打开的…

Java算法之时间复杂度和空间复杂度的概念和计算

1. 算法效率 如何去衡量一个算法的好坏? 通常我们从时间效率和空间效率两个方面去分析算法的好坏。时间效率即时间复杂度,空间效率被称为空间复杂度。时间复杂度主要是衡量一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间…

业务与数据的终极对决:如何让大数据成为企业的超能力?

在数字化转型的浪潮中,企业如同在茫茫数据海洋中航行的船只,而数据资产管理就是指引航向的罗盘。但是,当业务需求与数据脱节、数据孤岛林立、业务流程与数据流程不同步、以及业务增长带来的数据管理挑战成为阻碍,我们该如何突破重…

transformer上手(7)—— 快速分词器

1 快速分词器 Hugging Face 共提供了两种分分词器: 慢速分词器:Transformers 库自带,使用 Python 编写;快速分词器:Tokenizers 库提供,使用 Rust 编写。 特别地,快速分词器除了能进行编码和解…

单链表链表专题

1 链表的概念 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构跟⽕⻋⻋厢相似,淡季时⻋次的⻋厢会相应减少,旺季时⻋次的⻋厢会额外增加⼏节。只 需要…

Redis实现延迟任务的几种方案

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1.前言 2.Redis如何实现延迟任务? 3.代码实现 3.1. 过期键通知事…

技术速递|为 .NET iOS 和 .NET MAUI 应用程序添加 Apple 隐私清单支持

作者:Gerald Versluis 排版:Alan Wang Apple 正在推出一项隐私政策,将隐私清单文件包含在针对 App Store 上的 iOS、iPadOS 和 tvOS 平台的新应用程序和更新应用程序中。请注意,至少目前 macOS 应用程序被排除在外。 隐私清单文件…

这部经典之作,时隔六年迎来重磅升级!

🍅 作者简介:哪吒,CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪 🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 🍅 技术交流:定期更新…

Niobe WiFi IoT开发板OpenHarmony内核编程开发——Semaphore

本示例将演示如何在Niobe WiFi IoT开发板上使用cmsis 2.0 接口进行信号量开发 Semaphore API分析 osThreadNew() osThreadId_t osThreadNew(osThreadFunc_t func, void *argument,const osThreadAttr_t *attr )描述: 函数osThreadNew通过将线程添加到活动线程列表…

TG-12F使用SDK对接阿里生活物联网平台

文章目录 前言一、注意二、准备1. 安装Ubuntu(版本20.04 X64)程序运行时库。按顺序逐条执行命令:2. 安装Ubuntu(版本20.04 X64)依赖软件包。按照顺序逐条执行命令:3. 安装Python依赖包。按照顺序逐条执行命…

vscode 打代码光标特效

vscode 打代码光标特效 在设置里面找到settings 进入之后在代码最下方加入此代码 "explorer.confirmDelete": false,"powermode.enabled": true, //启动"powermode.presets": "fireworks", // 火花效果// particles、 simple-rift、e…

FFmpeg: 自实现ijkplayer播放器--04消息队列设计

文章目录 播放器状态转换图播放器状态对应的消息: 消息对象消息队列消息队列api插入消息获取消息初始化消息插入消息加锁初始化消息设置消息参数消息队列初始化清空消息销毁消息启动消息队列终止消息队列删除消息 消息队列,用于发送,设置播放…

eclipse导入maven项目与配置使用本地仓库

前言 本人润国外了,发现不能用收费软件IDEA了,需要使用eclipse,这个免费。 但是早忘了怎么用了,在此总结下。 一、eclipse导入本地项目 1.选这个:open projects from file system… 2.找到项目文件夹,…

如何编写易于访问的技术文档 - 最佳实践与示例

当你为项目或工具编写技术文档时,你会希望它易于访问。这意味着它将为全球网络上的多样化受众提供服务并可用。 网络无障碍旨在使任何人都能访问网络内容。设计师、开发人员和撰写人员有共同的无障碍最佳实践。本文将涵盖一些创建技术内容的最佳实践。 &#xff0…

KIVY 学习1

环境 python 3.6 3.7 对应Kivy 1.11.1版本各依赖 python -m pip install docutils pygments pypiwin32 kivy_deps.sdl20.1.22 kivy_deps.glew0.1.12 这是一个用于安装Python包的命令,它会安装一些特定的包。具体来说,这个命令会安装以下包: …