全国任意城市二手房价爬取(附源码)+分析教程

2024-02-25 00:50

本文主要是介绍全国任意城市二手房价爬取(附源码)+分析教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

不喜欢太多废话,直接上分析。
过程:
(第一步找总体)
在这里插入图片描述
第二步看单个:
在这里插入图片描述
在这里插入图片描述

(找规律)可遍历:
在这里插入图片描述

#coding=utf-8
"""
作者:川川
时间:2021/6/26
"""
from lxml import etree
import requestsif __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}url = 'https://xa.58.com/ershoufang/?q=%E4%B8%8A%E6%B5%B7'page_text = requests.get(url=url,headers=headers).texttree = etree.HTML(page_text)div_list = tree.xpath('//section[@class="list"]/div')print(div_list)fp = open('./上海二手房.txt','w',encoding='utf-8')for div in div_list:title = div.xpath('.//div[@class="property-content-title"]/h3/text()')[0]print(title)price=str('总价格为'+div.xpath('.//div[@class="property-price"]/p/span[@class="property-price-total-num"]/text()')[0])+'万元'print(price)fp.write(title+'\t'+price+'\n'+'\n')

结果:
在这里插入图片描述
但是呢?这样会不会还是显得麻烦了呢?难不成每个城市都写一份这样的代码吗?不是的,请看如下分析:
上面这部分代码是爬取的上海的二手房价
然而网址却是这样的:
在这里插入图片描述
这样很容易想到,如果切换城市,仅仅只需要把上海换成别的城市就可以了。经过我分析,换个城市,网页结构并不用变化,所以唯一变动就是这个城市。
因此修改后代码:

#coding=utf-8
"""
作者:川川
时间:2021/5/10
"""
from lxml import etree
import requestsif __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}c=input('这里是二手房价爬取,请输入你想要爬取的城市:\n')url = 'https://xa.58.com/ershoufang/?q=%s'%cpage_text = requests.get(url=url,headers=headers).texttree = etree.HTML(page_text)div_list = tree.xpath('//section[@class="list"]/div')print(div_list)fp = open('./上海二手房.txt','w',encoding='utf-8')for div in div_list:title = div.xpath('.//div[@class="property-content-title"]/h3/text()')[0]print(title)price=str('总价格为'+div.xpath('.//div[@class="property-price"]/p/span[@class="property-price-total-num"]/text()')[0])+'万元'print(price)fp.write(title+'\t'+price+'\n'+'\n')

效果如下:
想爬取哪个城市就输入哪个城市即可
在这里插入图片描述
b在这里插入图片描述
可是就算这样能爬取到每个城市的二手价,每次创建的文件名字没有变动啊,所以还得继续修改一点点,需要每次爬取就自动创建对应城市的文档,所以再次修改后如下:

#coding=utf-8
"""
作者:川川
时间:2021/5/10
"""
from lxml import etree
import requestsif __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}c=input('这里是二手房价爬取,请输入你想要爬取的城市:\n')url = 'https://xa.58.com/ershoufang/?q=%s'%cpage_text = requests.get(url=url,headers=headers).texttree = etree.HTML(page_text)div_list = tree.xpath('//section[@class="list"]/div')print(div_list)wen=c+'二手房价.txt'fp = open(wen,'w',encoding='utf-8')for div in div_list:title = div.xpath('.//div[@class="property-content-title"]/h3/text()')[0]print(title)price=str('总价格为'+div.xpath('.//div[@class="property-price"]/p/span[@class="property-price-total-num"]/text()')[0])+'万元'print(price)fp.write(title+'\t'+price+'\n'+'\n')

在这里插入图片描述
在这里插入图片描述

现在就完成了。
爬完二手房价,我都感觉要哭穷了,这房也太贵了吧!!酸了啊!
(顺便打上自己的小小群:970353786,任何代码资料均个人创造与分享)
在这里插入图片描述

这篇关于全国任意城市二手房价爬取(附源码)+分析教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/743929

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放