學習筆記(27):零基礎搞定Python數據分析與挖掘-爬蟲案例2-- 鏈家二手房

立即學習:https://edu.csdn.net/course/play/6861/341445?utm_source=blogtoedu

網絡爬蟲

鏈家二手房信息抓取

import re
import bs4
import requests
url = r'https:sh.lianjia.com/ershoufang/pudong/pg1'
response = requests.get(url)
response

沒有藉助瀏覽器返回結果是<Response [403]>

解決方法如下:

找瀏覽器 F12  F5刷新  在network下 all

找到任何一個文件點擊

找到User-Agent

例如:

user-agent:

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36

把上述字符放到一個字典中

key 值是User-Agent

vlaue 就是剩下的值

head = {‘User-Agent’:'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'}

在requests.get(url,headers=head)

 

例如獲取小區名稱,得到的html 代碼如下

<a href="https://sh.lianjia.com/xiaoqu/5011000014254/" target="_blank" data-log_index="2" data-el="region">金樟花苑 </a>

name = 'a'

字典key = ‘data-el’

字典value  = ‘region’

soup.findAll(name = ‘a’,attrs={‘’data-el:''region})

結果如下:

['金楊七街坊 ', '金樟花苑 ', '天環苑 ', '海光大樓 ', '上南五村 ', '惠康苑 ', '海尚康庭 ', '浦江東旭公寓1443弄 ', '朱家門小區 ', '中冶尚城 ', '紅光花苑 ', '明天華城 ', '雲臺一小區 ', '唐豐苑 ', '仁恆河濱城(三期) ', '大華錦繡華城(十八街區)(公寓) ', '濰坊十村 ', '高行綠洲(四期) ', '臨沂六村 ', '恆大小區 ', '世茂濱江花園 ', '金橋新城(一期) ', '曙光南橋小區 ', '銀龍小區 ', '妙境一村 ', '南新西園 ', '梅園三街坊 ', '中海御景熙岸(公寓) ', '世華錦城 ', '錦博苑 ']

抓取戶型:

html 代碼是:

<div class="houseInfo"><span class="houseIcon"></span>2室1廳 | 55.48平米 | 南 北 | 簡裝 | 中樓層(共6層) | 1995年建 | 板樓</div>

name = ‘div’

attrs = {‘class’:'houseInfo'}

[i.text for i in soup.findAll(name='div',attrs={'class':'houseInfo'})]

得到如下:

可以使用split 以| 分詞 並且使用index獲取每個元素信息

例如獲取戶型:

[i.text.split('|')[0] for i in soup.findAll(name='div',attrs={'class':'houseInfo'})]

獲取面積:

[i.text.split('|')[1] for i in soup.findAll(name='div',attrs={'class':'houseInfo'})]

 

獲取價格信息

首先獲取價格信息的html代碼

如下:

<div class="totalPrice"><span>279</span>萬</div>

name = 'div'

attrs = {'class':'totalPrice'}

soup.findAll(name='div',attrs={'class':'totalPrice'})

price = [float(i.text[:-1]) for i in soup.findAll(name='div',attrs={'class':'totalPrice'})]
print(price)

構造字典 輸出表格

pd.DataFrame({'huxing':huxing,'price':price})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章