python 爬取贝壳网小区名称_如何使用 python 爬取全国小区名称
前言
筆者在做一個(gè) NLPNLPNLP 項(xiàng)目時(shí),需要識(shí)別小區(qū)名,因此想要查詢網(wǎng)上是否有相關(guān)的數(shù)據(jù)集。經(jīng)過一番搜索后一無所獲…從而決定自己來爬取這份數(shù)據(jù)。
由于爬取網(wǎng)站的內(nèi)容信息之后可能會(huì)發(fā)生變更,因此此處給出具體的爬蟲思路,便于應(yīng)對之后的網(wǎng)站結(jié)構(gòu)變更。
方法
1. 爬取網(wǎng)站的確定
既然是爬蟲,那首先就需要確定爬取網(wǎng)站。這時(shí)候就需要思考哪些網(wǎng)站可能會(huì)涉及小區(qū)名字?
國家統(tǒng)計(jì)網(wǎng)?經(jīng)過一番搜索,沒找到…
房屋中介網(wǎng)?√
因此我們可以選取比較知名的房屋中介網(wǎng)來進(jìn)行小區(qū)名爬取,此處選取的網(wǎng)站是鏈家,原因是該網(wǎng)站有專門的小區(qū)板塊。鏈家
新龍城
因此我們增加一行代碼來提取 imgimgimg 標(biāo)簽中的信息并輸出。
text_list = soup.find_all('img', class_="lj-lazy")
for item in text_list:
print(item['alt'])
# 輸出結(jié)果:
# 首開康乃馨城
# 農(nóng)光里
# 理想家園
# 華貿(mào)城
# 住欣家園
# 遠(yuǎn)洋山水
# 旗勝家園
# 小南莊社區(qū)
# ...
第三步,構(gòu)造網(wǎng)站 urlurlurl
首先我們考慮頁面如何構(gòu)造。這個(gè)難度不大,我們只需要 forforfor 一遍頁面編號即可。這個(gè)網(wǎng)站有一個(gè)特點(diǎn)在于,網(wǎng)站上可能只顯示了 303030 頁,但是實(shí)際上可能有 100100100 頁…并且假如第 100100100 頁是最后一頁,那么第 101101101 頁的內(nèi)容將與第 100100100 頁保持一致。因此我們根據(jù)當(dāng)前網(wǎng)頁是否與上一個(gè)網(wǎng)頁一致,來判斷當(dāng)前網(wǎng)站爬取是否結(jié)束。
def get_housing_estate():
fo = open("data/housing_estate.txt", "w")
# 設(shè)置初始值
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)
# 創(chuàng)建bs對象
try:
response = requests.get(url.format(city, page)).text
except:
# 頁面出錯(cuò),則更換下一個(gè)城市
break
soup = BeautifulSoup(response, 'lxml') # 使用到了lxml解析庫
text_list = soup.find_all('img', class_="lj-lazy")
# 出現(xiàn)重復(fù)頁面
if text_list == last:
break
last = text_list
# 寫入文件
for item in text_list:
fo.write(item['alt'] + 'n')
接下來就要考慮城市簡寫如何爬取了。我們可以根據(jù)這個(gè)網(wǎng)站中提供的城市分類來對網(wǎng)站進(jìn)行爬取。
總結(jié)
以上是生活随笔為你收集整理的python 爬取贝壳网小区名称_如何使用 python 爬取全国小区名称的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的lib文件夹_python
- 下一篇: linux redis-4.0,Linu