如何用 Python 一鍵查房價?看來我還是買不起房啊!

weixin_34253539發表於2019-02-12

在這全民買房的時代,有一項技能我覺得是程式設計師應該要配備的,無論近期要買或是不買,還是要適當的關注房價走向的。我也喜歡瀏覽房價,但是在網頁裡看得眼花繚亂的,程式設計師就該用程式設計師的方式看嘛!

於是我用python+selenium來抓取鏈家房資料,selenium自動化優點是完全可以模擬人工操作網頁,而且相對其他爬蟲不用寫請求頭,例如直接request的。

前期準備

1、安裝selenium

命令列:pip install selenium 敲回車

2、下載chromedriver對應的版本:

http://chromedriver.storage.googleapis.com/index.html

12649257-be2dd67e728455f1

直接放在Python的Scripts目錄下就可以不用配置變數了,而且也不用宣告路徑

(後面會說)

3、安裝pyquery:

12649257-1203a410b9962148

命令列:pip install pyquery

4、安裝pymysql

命令列:pip install pymysql

12649257-6271dda540a15e30

網頁分析

我們不用宣告請求頭的引數了,只要我們拿到URL,指哪爬哪!

此次抓取的資料如下:

12649257-cf84ba166f253575

開啟開發者工具,谷歌瀏覽器按F12

12649257-8905ec4e75b885f1

發現每個小區的售房資訊都在ul下的li標籤裡,程式碼如下:

12649257-40fdadce6409f42f

第一步拿到html結構,然後用pyquery解析遍歷li標籤,我使用了items()方法

接著提取小區名稱,找到a標籤的class:

12649257-a3d57779b487cfe7

提取房類的文字,span標籤下面:

12649257-bdf243d04387e1df

其他的Text文字都是這樣的方法提取

提醒的一點就是,需要判斷一下ul的class,防止有時候網路載入的問題,導致發生錯誤。

模擬滾動

每跳轉一頁就滾動一下滾動條,這樣做的有好處是有些時候是非同步載入的,例如檢視評論:

這裡可以根據個人不同來定義,我這裡以800來滾動。

然後是點選下一頁的動作,網頁有下一頁的選項。一些其他的小動作,可以自己新增哦!

資料儲存

我這裡用mysql存放資料

12649257-baef59177bd1a526

資料展示:

12649257-127d13ae5cf4df6c

在這全民買房的時代,有一項技能我覺得是程式設計師應該要配備的,無論近期要買或是不買,還是要適當的關注房價走向的。我也喜歡瀏覽房價,但是在網頁裡看得眼花繚亂的,程式設計師就該用程式設計師的方式看嘛!

於是我用python+selenium來抓取鏈家房資料,selenium自動化優點是完全可以模擬人工操作網頁,而且相對其他爬蟲不用寫請求頭,例如直接request的。

前期準備

1、安裝selenium

命令列:pip install selenium 敲回車

2、下載chromedriver對應的版本:

http://chromedriver.storage.googleapis.com/index.html

12649257-1dd4ac7615c847e2

直接放在Python的Scripts目錄下就可以不用配置變數了,而且也不用宣告路徑

(後面會說)

3、安裝pyquery:

命令列:pip install pyquery

4、安裝pymysql

命令列:pip install pymysql

12649257-549d429c4f7c8835

網頁分析

我們不用宣告請求頭的引數了,只要我們拿到URL,指哪爬哪!

此次抓取的資料如下:

12649257-c72e5a229b289c84

開啟開發者工具,谷歌瀏覽器按F12

12649257-5020be23434e1a70

發現每個小區的售房資訊都在ul下的li標籤裡,程式碼如下:

12649257-b34f619594516aaf

第一步拿到html結構,然後用pyquery解析遍歷li標籤,我使用了items()方法

接著提取小區名稱,找到a標籤的class:

12649257-6c504a2f1c92ec8f

提取房類的文字,span標籤下面:

12649257-78038c87007555dc

其他的Text文字都是這樣的方法提取

提醒的一點就是,需要判斷一下ul的class,防止有時候網路載入的問題,導致發生錯誤。

模擬滾動

每跳轉一頁就滾動一下滾動條,這樣做的有好處是有些時候是非同步載入的,例如檢視評論:

12649257-ea2ddcddc41715d3

這裡可以根據個人不同來定義,我這裡以800來滾動。

然後是點選下一頁的動作,網頁有下一頁的選項。一些其他的小動作,可以自己新增哦!

資料儲存

我這裡用mysql存放資料

12649257-a07b306d4193c37e

資料展示:

12649257-5326decbd91eea93

進群:960410445 即可獲取數十套PDF!

相關文章