因前段時間公司有需求,想獲得咱們公司所在地區(四線城市)的電商企業的銷售額排名狀況,時間緊急,調研無 果,花費RMB若干買了某工具的數據服務(避免打廣告的嫌疑,就不提該工具的名稱了,網頁版的),勉強獲得些數 據,在我看來效果並不理想。恰逢近期公司想作大數據項目,須要用到爬蟲,因此趁此機會研究一下怎麼抓取到這個 數據。
1)剛下載時項目中使用後得不到某寶的數據,由於數據是動態生成的。 2)在項目中使用Jsoup去獲取數據,也是獲取不到動態生成的數據。 3)使用HttpUnit去獲取數據,某寶的取不到,用某度的首頁試了下,是能夠的。緣由沒找到,也不知道該怎麼去找, 反正就是response裏空的,啥都沒有,很崩潰地棄坑了。 4)終於說到今天的主角了,在網上找了N久,最後找到了Selenium。順便說下,在此以前還找到了JxBrowser,不 過用不明白,果斷就算了。話說後來他們客服還打電話詢問狀況來着。。。
開發環境html
1)Win 10專業版 64位 2)JDK 1.8 3)Intellij IDEA Ultimate 2016.3 4)Maven用的IDEA自帶的Bundled (Maven 3) 5)Firefox 61 中文版 6)Selenium 3.11.0 7)geckodriver 0.20.0
開發思路瀏覽器
因爲反爬機制的存在,爲避免數據抓到到一部分,被迫中斷,因此採起分步抓取的方式。 1)打開某寶首頁,搜索店鋪,關鍵字爲想要數據的地區(至於我用的哪一個地區,代碼裏有的),抓取並保存 店鋪列表。須要過濾,由於搜索結果中會包含不相關的店鋪。我是根據店鋪名稱、賣家、地區中包含特定關鍵 字來過濾的。 2)把店鋪列表的url作爲輸入,循環店鋪列表url並進入,爲方便操做,這一步要拼接部分地址,進入的是該店鋪 全部寶貝列表頁面,並且是按銷量排序後的。抓取並保存寶貝列表。 3)把寶貝列表的url作爲輸入,循環寶貝列表url並進入,抓取交易量數據並保存。
開發進度工具
目前開發出來的是開發思路中的步驟1)和2),其中步驟1)不會出現登陸驗證,步驟2)會出現。目前代碼 中包含登陸驗證部分。後續的部分會繼續開發。目前代碼運行中,在抓取寶貝列表的數據,400多個店鋪要抓 取仍是須要很多時間的,爲減小登陸驗證彈出的可能,設定了寶貝翻頁間隔30秒。 有需求代碼的同窗可在評論中留下郵箱,我看到了會打包郵寄的。
郵箱:874544323@qq.com 也能夠加QQ交流。