【京東】scrapy爬蟲抓取京東圖書詳情、評論
阿新 • • 發佈:2019-01-22
1 前期工作
參考
測試
- 開啟京東圖書
- 在console中輸入
$('ul.gl-warp > li').length
,結果為30,說明該頁面是js動態頁面 - 輸入
document.getElementsByClassName('page')[0].scrollIntoView(true)
,可以完成拖拽動作
註釋:獲取類名為 page 的元素,見【說明】 span#J_resCount::text
獲取id屬性為J_resCount的span標籤的文字
span.J_resCount::text
獲取class屬性為J_resCount的span標籤的文字
準備
- 開啟docker,開啟splash埠
sudo service docker start
sudo docker run -p 8050:8050 scrapinghub/splash
2 抓取目標確定
- 搜尋頁抓取:
ID/ 折扣價/ 總評論數/ 書店名
- 詳情頁抓取:
書名、出版社、作者、ISBN、出版時間、型別
(不能按照順序來)
ID / 書名 / 原價 / 折扣價 / 作者 / 出版日期 / 出版社 / 總評分 / 總評論數 / 書店名 / ISBN /型別
附錄: win10 中的BUG
1 (已解決)找不到splash模組 No module named ‘splash’
- 描述:裝好scrapy-splash後,依舊無法執行爬蟲,並報錯
- 原因:沒有安裝splash
- 解決辦法:安裝splash,開啟埠,執行爬蟲
1. 下載splash包 `pip install scrapy-splash`
2. 官網下載docker `https://store.docker.com/editions/community/docker-ce-desktop-windows`
3. 利用docker 執行splash 'docker run -p 8050:8050 scrapinghub/splash'
4. 驗證splash是否開啟,網頁輸入'http://localhost:8050'
4. 編輯scrapy
2 (已解決)報錯 ModuleNotFoundError: No module named ‘twisted.enterprise”
安裝完docker、splash後,執行爬蟲報錯,並且原先能正常執行的爬蟲也出現同樣錯誤
懷疑1:安裝包損壞,得重灌scrapy
操作:重新安裝scrapy後,沒用懷疑2:但執行不帶
from twisted.enterprise import adbapi
的爬蟲沒問題,而且以前這條命令能執行,但現在不能執行,懷疑twisted需要升級
操作:升級twisted ,conda upgrade twisted
,問題解決
3 (已解決)執行爬蟲出現 ImportError: cannot import name ‘_win32stdio’
- 描述:
更新splashpip install -- upgrade splash
,執行爬蟲出現ImportError: cannot import name '_win32stdio'
4 (已解決)執行quotes爬蟲,報錯 ModuleNotFoundError: No module named ‘splash.downloadermiddlewares’
- windows解決不了了,換linux了。。
- 後續:時隔多日,殺回windows,用conda重灌
twisted
和scrapy
就解決了