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,一经查实,立即删除!

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 补课

学了JAVA WEB应用,补充一下HTML的标签,常用的,不然页面都画不出来了~~test 标题,h1h2h3 3个字号test 段落link 链接 使用 Target 属性,你可以定义被链接的文档在何处显示。下面的这行会在新窗口打开文档:Vi…

python 角度传感器模拟_python树莓派红外反射传感器

本文实例为大家分享了python树莓派红外反射传感器的程序,供大家参考,具体内容如下1、工具rpi3,微雪ARPI600,Infrared Reflective Sensor2、基本原理Infrared Reflective Sensor 输出数字和模拟信号模拟信号通过ARPI600上的AD转换芯…

java构造方法赋值内存图_java 面向对象(九):类的结构:构造器(一)简介;属性赋值顺序;JavaBean的概念...

1.构造器(或构造方法):Constructor构造器的作用:* 1.创建对象* 2.初始化对象的信息2.使用说明:* 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器* 2.定义构造器的格式:权限修饰符 类名(形参列表){}…

java 集合modcount_源码|jdk源码之LinkedList与modCount字段

链表是对上一篇博文所说的顺序表的一种实现。与ArrayList思路截然不同,链表的实现思路是:不同元素实际上是存储在离散的内存空间中的。每一个元素都有一个指针指向下一个元素,这样整个离散的空间就被“串”成了一个有顺序的表。从链表的概念来…

idea 新建ssm java ee_IDEA搭建SSM项目实现增删改查

首先打开IDEA,File—>New—>Project创建项目选择左侧导航栏里的Maven,勾上勾,选择webapp按如下图进行填写创建完成后进入项目,右下角弹出的提示点击右边的Enable Auto-Import,自动配置连接数据库,我用…

php mail centos_centos怎么发送邮件

一、安装sendmail与mail1、安装sendmail:1) centos下可以安装命令:yum -y install sendmail2) 安装完后启动sendmail命令:service sendmail start2、安装mail安装命令:yum install -y mailx二、发送邮件1、通过文件内容发送发送命…

php文件的作用,php入口文件的作用-PHP问题

php入口文件的作用php入口文件能够完成主动加载性能。解析PHP入口文件的主动加载性能php的主动加载:正在php5之前,咱们要用某个类或类的办法,那必需include或许require,之后能力应用,每一次用一个类,都需求…

java中随机数边界问题,java 简单Dice问题(随机数的运用)

[java]代码库/*** Dice Write a program that simulates rolling two dice using the following* steps: 1. Prompt the user for the number of sides for two dice. 2. “Roll” the* dice three times by generating a random number between 1 (inclusive) and the* number…

java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)

java单词贡献者:15533470608类别:英文 时间:2018-08-04 22:32:16 收藏数:20 评分:0返回上页举报此文章请选择举报理由:广告/谣言/欺诈政治敏感色情/违法信息垃圾文章其他收藏到我的文章改错字public static…

java vector list,Java基础之:List——ArrayList Vector

Java基础之:List——ArrayList & VectorArrayList简单介绍ArrayList实现了List接口,底层是一个数组,并实现了可变的功能。底层属性(transient Object[] elementData;)在序列化时,忽略该属性。ArrayList实现了List接口&#xf…

钉钉 php 推送,微信模板推送,钉钉信息推送

上午的时候看到有朋友需要微信推送,正好我也需要,之前一直用 Server 酱的,但是最近用不了,想找一个替代品,一开始准备选择钉钉,除了打卡,我很少使用钉钉,邮件提醒是备用方案&#xf…

涡轮机叶片matlab强度分析论文,一种基于MATLAB及Pro_E的涡轮建模方法

自动化与控制与二一种基于MATLAB及Pro/E的涡轮建模方法王智明(中海油服油田技术事业部北京1011&am…

php按文章评论数排序,zblog获取分类文章排序按指定的时间排序、评论数量排序、浏览数量排序...

Zblog PHP在1.8版本的时候想要调用多个分类的文章,并且按照自己的需求去排序是很简单的事情,很多博友也利用这个方法进行最新文章排行、热门评论文章排行等等操作,现在随着ZblogPHP版本的升级,已经封装了数据库语句,导…