python 爬取贝壳网小区名称_如何使用 python 爬取全国小区名称

前言

笔者在做一个 NLPNLPNLP 项目时,需要识别小区名,因此想要查询网上是否有相关的数据集。经过一番搜索后一无所获…从而决定自己来爬取这份数据。

由于爬取网站的内容信息之后可能会发生变更,因此此处给出具体的爬虫思路,便于应对之后的网站结构变更。

方法

1. 爬取网站的确定

既然是爬虫,那首先就需要确定爬取网站。这时候就需要思考哪些网站可能会涉及小区名字?

国家统计网?经过一番搜索,没找到…

房屋中介网?√

因此我们可以选取比较知名的房屋中介网来进行小区名爬取,此处选取的网站是链家,原因是该网站有专门的小区板块。链家

53694c399b5cc4b483c7a62c27b1f3e5.png

新龙城

因此我们增加一行代码来提取 imgimgimg 标签中的信息并输出。

text_list = soup.find_all('img', class_="lj-lazy")

for item in text_list:

print(item['alt'])

# 输出结果:

# 首开康乃馨城

# 农光里

# 理想家园

# 华贸城

# 住欣家园

# 远洋山水

# 旗胜家园

# 小南庄社区

# ...

第三步,构造网站 urlurlurl

首先我们考虑页面如何构造。这个难度不大,我们只需要 forforfor 一遍页面编号即可。这个网站有一个特点在于,网站上可能只显示了 303030 页,但是实际上可能有 100100100 页…并且假如第 100100100 页是最后一页,那么第 101101101 页的内容将与第 100100100 页保持一致。因此我们根据当前网页是否与上一个网页一致,来判断当前网站爬取是否结束。

def get_housing_estate():

fo = open("data/housing_estate.txt", "w")

# 设置初始值

last = BeautifulSoup(requests.get(url.format("wz", 1)).text, 'lxml').find_all('img', class_="lj-lazy")

for city in address_list:

for page in range(1, 500):

print(city, page)

# 创建bs对象

try:

response = requests.get(url.format(city, page)).text

except:

# 页面出错,则更换下一个城市

break

soup = BeautifulSoup(response, 'lxml') # 使用到了lxml解析库

text_list = soup.find_all('img', class_="lj-lazy")

# 出现重复页面

if text_list == last:

break

last = text_list

# 写入文件

for item in text_list:

fo.write(item['alt'] + 'n')

接下来就要考虑城市简写如何爬取了。我们可以根据这个网站中提供的城市分类来对网站进行爬取。

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

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

相关文章

mysql hint 简书_MySQL

为满足不同数据库设计要求,减少数据冗余而指定设计规范,可称为数据库范式数据库范式呈递次规范,即高阶范式必然满足低阶范式越高的数据库范式意味着越严格的设计要求,同时数据冗余越小第一范式(1NF):数据库表的每一列都…

python获取手机通知栏消息_Python编写简单的通知栏脚本启动工具

随着自己编写的脚本与安装的工具越来越多,电脑的桌面和文件夹也越来越乱了。就在前几天因为一个不小心,我把自己的一个项目给删了,所以决定将电脑整理一下。不过这一整理我很多脚本和工具的位置我就忘记了,所以决定写个小工具来快速启动一些常用的脚本或工具这里选择Python是因…

java 圆 继承_java 类的继承(转)

这个星期主要是学习了Java中类的继承问题.继承就是由已有的类创建新类,通过子类继承父类的方法,实现一些功能.下面就是老师布置作业的其中一个:定义父类圆,通过继承,获得子类球、圆锥、圆柱,子类具有计算体积的功能。1)新建文件夹Test1&#…

java爬虫 京东_Java爬虫实现京东物流查询

网上没有免费的接口,只能自己写一套了,参考代码如下public static JSONObject getLastInfo(String no){JSONObject jsonObjectnew JSONObject();jsonObject.put("no", no);Connection connectionJsoup.connect("http://www.jdwl.com/orde…

java list stream avg_Java 8 Stream API中的多个聚合函数

要在没有自定义收集器的情况下执行此操作(不再对结果进行流式传输),您可以这样做.它有点脏,因为它首先收集到Map< String,List< TimePeriodCalc>>然后流式传输该列表并获得平均加倍.由于你需要两个平均值,它们被收集到一个Holder或一对,在这种情况下我使用的是Abst…

java 发送邮件昵称_利用JavaMail发送QQ邮件

一、RFC882文档简单说明RFC882文档规定了如何编写一封简单的邮件(纯文本邮件)&#xff0c;一封简单的邮件包含邮件头和邮件体两个部分&#xff0c;邮件头和邮件体之间使用空行分隔。邮件头包含的内容有&#xff1a;from字段   --用于指明发件人to字段    --用于指明收件…

java没有timer类_Java中的Java.util.Timer类 - Break易站

scheduleAtFixedRate(TimerTask task, long delay, long period): java.util.Timer.scheduleAtFixedRate(TimerTask task, long delay, long period)在指定的延迟语法后开始&#xff0c;为重复的固定速率执行调度指定的任务&#xff1a;public void scheduleAtFixedRate(TimerT…

java select下拉标签_java中下拉框select和单选按钮的回显操作

前提&#xff1a;1.下拉框select请选择部门selected"selected">${department.department}2.单选按钮radio的回显checked"checked">checked"checked">补充知识&#xff1a;java使用apache commons-fileupload组件实现文件上传(控制文件上…

java 访问控制权限_Java访问控制权限有哪些?区别是什么?

原标题&#xff1a;Java访问控制权限有哪些&#xff1f;区别是什么?Java中的类和方法等都是有访问控制权限的&#xff0c;用来控制方法、类、属性等的生效范围&#xff0c;Java有四种访问控制权限&#xff0c;其中比较常用的就是public和private&#xff0c;今天华清远见Java学…

java 操作cursor数据库_Java连接各种数据库以及调用存储过程

准备工作&#xff1a;1. 创建表drop table T_TEST_PROCEDURE cascade constraints;/**//*Table: T_TEST_PROCEDURE*//**/createtable T_TEST_PROCEDURE (IDNUMBER(19) not null,NAMEVARCHAR2(40),AGE NUMBER(3),constraintPK_T_TEST_PROCEDURE primary key (ID));2. 创建存储过…

java 规格overview_《Java數據結構和算法》- OverView

Q: 不同數據結構的優缺點&#xff1f;數據結構優點缺點數組(Array)快速訪問&#xff0c;如果知道下標&#xff0c;就可以非常快地存取查找慢&#xff0c; 插入或刪除慢&#xff0c; 大小固定有序數組(OrderedArray)比無序的數組查找快插入或刪除慢&#xff0c;大小固定棧(Stack…

mysql 集群怎么卸载节点_Greenplum移除节点

基于某某原因&#xff0c;我们的Greenplum需要卸载一个节点(测试环境的Greenplum集群)&#xff0c;由于该集群使用了很久&#xff0c;里面有许多开发所需要的数据&#xff0c;所以在卸掉一个节点后&#xff0c;还要保证数据不会丢失。当然&#xff0c;期间也遇到了点问题&#…

mysql2012更改表名_T-SQL入門攻略之13-修改数据表

--> Title : T-SQL入門攻略之13-修改数据表--> Author : wufeng4552--> Date : 2010-07-12修改表名与字段名—sp_rename--1修改表名SQL Server不直接提供修改表名的T-SQL语句&#xff0c;但是可以通过存储过程实现语法格式&#xff1a;sp_rename tablename,newtabl…

python中不论类的名字是什么歌_Python自动猜歌名,还愁排名上不去嘛?

前言相传&#xff0c;就在前几日&#xff0c;在网上闲逛时&#xff0c;刷到了一个猜歌的小程序。这个小程序通过播放歌曲部分片段&#xff0c;然后让用户来猜它的歌名&#xff0c;大概是这样的&#xff1a;作为一个脑热的听歌爱好者&#xff0c;于是他越陷越深&#xff0c;越刷…

java调用oracle存储过程_做一点,记一点 ~ Java调用Oracle存储过程

一、需求传入一个参数&#xff0c;返回一条或多条记录(列表)。二、实现步骤1. 编写Oracle存储过程。-- 声明包和包体的语句应该分两次执行&#xff0c;即使声明在前定义在后&#xff0c;如果一起执行依然会编译出错--调用能够返回多条记录的存储过程需要定义在包内--声明包及包…

java 从控制台读取_转载 java从控制台读取输入的方法

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class MainClass { public static void method1() { //使用Scanner Scanner scannernew Sca…

trace java_使用java动态字节码技术简单实现arthas的trace功能。

参考资料用过[Arthas]的都知道&#xff0c;Arthas是alibaba开源的一个非常强大的Java诊断工具。不管是线上还是线下&#xff0c;我们都可以用Arthas分析程序的线程状态、查看jvm的实时运行状态、打印方法的出入参和返回类型、收集方法中每个代码块耗时&#xff0c;甚至可以监控…

顺时针小球圆周运动Java编程_如何使用CSS实现圆周运动小球的实例

我们时常在页面中见到一些动画效果&#xff0c;这些动画效果&#xff0c;很多可以仅通过CSS来实现。在这里我们用到了CSS3的animation属性。animation 属性是一个简写属性&#xff0c;用于设置六个动画属性&#xff1a;animation-name 规定需要绑定到选择器的 keyframe 名称。a…

java swing 外观框架_【GUI】一、Swing外观框架BeautyEye使用

一、Swing外观框架BeautyEye使用1.1 导包1.2 使用BeautyEye L&Fpublic static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {// 国人牛逼主题&#xff0c;值得学习// 初始化字体InitGlobalFont(new Font("微软雅黑", F…

static详解java_java中static作用详解

static表示“全局”或者“静态”的意思&#xff0c;用来修饰成员变量和成员方法&#xff0c;也可以形成静态static代码块&#xff0c;但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说&#xff0c;它不依赖类特定的实例&…