一文入門Python + Selenium動態爬蟲

  • 2019 年 10 月 8 日
  • 筆記

作者介紹:timber ,在一家電子商務(外貿)公司任職運維,平常工作時我覺得敲命令的樣子也很帥 —Python,Changed me!

個人部落格地址:

https://blog.csdn.net/weixin_42946604

本文首發於:

https://blog.csdn.net/weixin_42946604

前言

我這裡用到了的python+selenium來抓取數據,因爲很多時候分析參數,頭疼啊,能分析的還好。有些網頁就很變態哦,參數都是經過加密的。

selenium自動化優點(我去找了一下度娘…哈哈),完全可以模擬人工操作網頁,而且相對其他爬蟲不用寫請求頭(偷懶),例如直接request的,聽說更容易被封(403),我只是聽說!

最後希望更大家互勉互力,一同進步!現在跟大家分享一下python selenium的小知識…

整體流程

1、安裝selenium

命令行:pip install selenium 敲回車

2、下載chromedriver插件,對應自己的版本,鏈接在此:

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

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

(後面會說到)

3、安裝pyquery 一樣的用到pip安裝 敲回車

命令行:pip install pyquery

4、安裝pymysql

命令行:pip install pymysql 同上

5、以上安裝完成後,開始我們的騷操作了。

網頁分析

我們不用聲明請求頭還有分析一些參數了,只要我們拿到URL,指哪爬哪! 此次抓取的數據如下:

那這些數據的提取正題就來了! 打開開發者工具,google瀏覽器直接挫F12

發現每個小區的售房資訊都在ul下的li標籤裡面。直接上程式碼

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

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

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

其他的TEXT文本都是這樣的方法提取 提醒的一點就是

我們這裡判斷一下ul的class,防止有時候網路載入的問題,導致發生錯誤。

模擬滾動,點擊下一步操作

我們沒跳轉一頁就滾動一下滾動條,這個有好處的哦有時候很多非同步載入的,例如一下ajax載入的就是很好的例子了,查看評論的時候很多是這樣的!我們來看一下

這也是個方法,根據個人不同來定義,我這裡以800來滾動。 然後就是點擊下一頁的動作,網頁有下一頁的

程式碼實現 直接上圖

一些其他的小動作,可以自己添加哦!

數據存儲

我這裡用mysql存放數據,上圖

我提前把數據表建好了的,表名為lianjie_data,資料庫名是lianjie,這裡根據個人情況。 你可以寫一個data_save的方法,我這裡簡單粗暴點從上到下直接寫完了。 好了運行程式

數據展示

是不是完完全全模擬人工操作呢,其實我沒加太多動作 嘻嘻 源碼後續放出來,也會寫一些更多的小知識更大家分享