Selenuim Java 借用某寶某地區的電商數據

項目背景

因前段時間公司有需求,想獲得咱們公司所在地區(四線城市)的電商企業的銷售額排名狀況,時間緊急,調研無
  果,花費RMB若干買了某工具的數據服務(避免打廣告的嫌疑,就不提該工具的名稱了,網頁版的),勉強獲得些數
  據,在我看來效果並不理想。恰逢近期公司想作大數據項目,須要用到爬蟲,因此趁此機會研究一下怎麼抓取到這個
  數據。

踩坑過程


  1. 最早使用的是火車(頭)採集器,配置過程不算很麻煩,只是效果實在不敢恭維,穩定性不好,同一個連接地址,一下子能採集到數據,一下子採集不到,徹底摸不到套路,果斷棄坑。
  2. 而後使用的是八爪魚採集器,配置不很複雜,網上有很多配置教程,也有些簡易的模板可直接使用,功能比較強大,自帶瀏覽器功能,只要是頁面上能看到的內容基本上都能抓取到。就是數據抓取後導出時須要付費(以積分形式,註冊帳號給2000,以後花RMB購買)。還有就是在操做的過程當中延時不能很好地控制(也許是我不會配置這個),形成觸發了某寶的反爬機制,彈出了登陸驗證,再以後就不知道怎麼配置去繞過這個驗證了,不得已棄坑。
  3. 最後接收到領導的要求和客觀事實的存在,研究怎麼本身開發實現這樣的功能。通過將近一週的努力,如今基本能夠經過指定的驗證,進行數據的抓取。
    (聲明一下,最初是從網上找了個項目MyCrawler,如今的功能是在該項目的基礎上實現的,只是使用到了項目包結構,沒有使用內部代碼,實在是懶得本身建項目,弄結構了。
    原項目地址:https://www.cnblogs.com/sanmu...
    若是原做者介意的話,請聯繫我刪除不相關代碼,聯繫方式我會放在文末,謝謝。)
1)剛下載時項目中使用後得不到某寶的數據,由於數據是動態生成的。
    2)在項目中使用Jsoup去獲取數據,也是獲取不到動態生成的數據。
    3)使用HttpUnit去獲取數據,某寶的取不到,用某度的首頁試了下,是能夠的。緣由沒找到,也不知道該怎麼去找,
    反正就是response裏空的,啥都沒有,很崩潰地棄坑了。
    4)終於說到今天的主角了,在網上找了N久,最後找到了Selenium。順便說下,在此以前還找到了JxBrowser,不
    過用不明白,果斷就算了。話說後來他們客服還打電話詢問狀況來着。。。

開發過程

  1. 開發環境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
  2. 開發思路瀏覽器

    因爲反爬機制的存在,爲避免數據抓到到一部分,被迫中斷,因此採起分步抓取的方式。
     1)打開某寶首頁,搜索店鋪,關鍵字爲想要數據的地區(至於我用的哪一個地區,代碼裏有的),抓取並保存
     店鋪列表。須要過濾,由於搜索結果中會包含不相關的店鋪。我是根據店鋪名稱、賣家、地區中包含特定關鍵
     字來過濾的。
     2)把店鋪列表的url作爲輸入,循環店鋪列表url並進入,爲方便操做,這一步要拼接部分地址,進入的是該店鋪
     全部寶貝列表頁面,並且是按銷量排序後的。抓取並保存寶貝列表。
     3)把寶貝列表的url作爲輸入,循環寶貝列表url並進入,抓取交易量數據並保存。
  3. 開發進度工具

    目前開發出來的是開發思路中的步驟1)和2),其中步驟1)不會出現登陸驗證,步驟2)會出現。目前代碼
     中包含登陸驗證部分。後續的部分會繼續開發。目前代碼運行中,在抓取寶貝列表的數據,400多個店鋪要抓
     取仍是須要很多時間的,爲減小登陸驗證彈出的可能,設定了寶貝翻頁間隔30秒。
     有需求代碼的同窗可在評論中留下郵箱,我看到了會打包郵寄的。

聯繫方式

郵箱:874544323@qq.com
也能夠加QQ交流。
相關文章
相關標籤/搜索