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.pswp.cn/news/529403.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529403.shtml
英文地址,請注明出處:http://en.pswp.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;它不依賴類特定的實例&…