日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬取链家网站的北京租房信息

發布時間:2024/3/12 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取链家网站的北京租房信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本來準備這個暑假好好復習,但學校安排暑期實踐,既然學校安排這個,而且我自己也覺得需要提高一下自己的能力,所以靜下心來做點事吧。我們要做到項目是分析北京地區的租房的信息分析。

我們需要做的是爬取鏈家網站上北京地區的租房信息。鏈家作為國內比較出名的房地產中介公司,發布的房地產租房信息還是不叫權威的。

我們需要做的分為兩步:找到各個租房頁面的鏈接,爬取每個租房頁面的數據。

第一步找到每個租房頁面的鏈接,北京地區的租房頁面的初始鏈接為https://bj.lianjia.com/zufang/pg1/,下一頁的地址就是把后面的pg1改成pg2,以此后推,一共有100個頁面。

具體實現代碼如下:

for i in range(1,101):firsturl=r"https://bj.lianjia.com/zufang/pg%d/"%i # list.append(firsturl)title,l=frist(firsturl)

我們需要在這個頁面上爬取每個具體房屋頁面的URL地址。

具體實現代碼如下:

def frist(firsturl):time.sleep(3)title=[]l=[]html=requests.get(firsturl)#html可能亂碼,soup會轉碼soup = BeautifulSoup(html.content)for link in soup.find_all('h2'):if len(str(link))>84:# href=link.get('href')li=link.a['href']t= link.a["title"]title.append(t)l.append(li)return title,l

第二步在每個租房頁面上提取自己想要的信息,我們已知每個租房頁面上的URL,所以我們設計一個函數可以根據一個URL可以提取我們想要的數據。具體代碼實現如下:

def single(url):# send_headers={"User-Agent":" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36", # "Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8", # "Connection":"keep-alive", # "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"} # html=requests.get(url)soup=BeautifulSoup(html.content)soup1=soup.find(class_='zf-room')#tag類型price=soup.find_all(class_='total')[0].stringarea=soup.find_all(class_='lf')[0].get_text()[3:8:]housetype=soup.find_all(class_='lf')[1].get_text()floor=soup.find_all(class_='lf')[2].get_text()toward=soup.find_all(class_='lf')[3].get_text()subline=soup1.find_all("p")[4].get_text()local=soup1.find_all("p")[6].get_text()print(price,area,housetype,floor,toward,subline,local) # for i in soup.find_all("span"): # print (i) # price.append(i)return price,area,housetype,floor,toward,subline,local

我們現在已經可以將這兩部分合并在一起就好啦。

注:一、因為我們如果很高頻率的登錄網站,網站會把我們給斷開,所以我們選擇time.sleep()來減輕訪問時間

? ? ? 二、我們第一步得到的網址我們可以先保存在本地,然后我們可以讀取文件,這樣可以避免多次訪問。

? ? ? 三、當我們爬取一半時忽然無法執行,可以將已經執行好的數據下來,再將代碼從斷開的地方重新執行,這樣可以節省很多時間。

代碼傳送門

總結

以上是生活随笔為你收集整理的爬取链家网站的北京租房信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。