首先python的scrapy框架很好,功能強大,使用起來也很方便,省去了很多造輪子的時間。在學習的過程中也碰到了一些問題,在這里希望能分享與大家分享,做一個參考
1.安裝(pip延時響應問題)
scrapy框架包含了很多包,理論上是通過pip install scrapy命令可直接安裝。但實際上還是有很多的問題
問題1:
在cmd直接輸入pip install scrapy,可是網速會顯示很慢,最后出現紅字報錯
原因:這是網絡連接的問題,pip命令會直接在python官網上下載包(官網的速度那就不敢恭維了)
解決方法:輸入 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple [module name]
( 這個網站是清華的資源網)
注:如果網速更慢的小伙伴的話,可以在再加上時間元素
形如:pip --default-timeout=10000 install package(與上面的方法可以綜合使用)
2.所需要的知識儲備
python基礎知識(if while for 繼承 迭代器 異常處理 文件操作之類(現用現學也不遲))
xpath相關知識,知道如何再xml網頁中定位element(https://www.bilibili.com/video/av48794288?from=search&seid=14753612886237754814)
css選擇器相關知識(https://www.w3school.com.cn/css/index.asp)
https://blog.csdn.net/lynnpaul/article/details/79884677
正則表達式(B站上全都有)
《數據通信與網絡 第四版》第27章 萬維網與超文本傳輸協議(了解web運行的基本原理)
掌握上面這些可以基本開始scrapy框架的學習了,后面的知識用到再說
*系統性的學習很重要,很重要,很重要。百度只能當作輔助,最好是去看書。好東西都在書里
3.教訓
vscode一定要搭建好環境
推薦閱讀:https://www.cnblogs.com/asce/p/11600904.html
(還有一篇文章找不到了,大意就是配置好 環境變量,怎么配置可以自己搜)
4.當scrapy shell出故障時,推薦使用jupyter notebook進行網頁分析(剛接觸python編程時也推薦使用)
補充:通過后續的學習,發現jupyter進行網頁分析存在很大一部分局限性。
實際上很多網站經典反爬蟲機制之一就是會檢查User-Agent。當我們直接通過爬蟲程序發送請求時,會被網站服務器拒絕(such as經典爬蟲練習網站:豆瓣)
所以很多時候還是推薦直接使用scrapy框架(已經進行過User-Agent偽裝或者模擬)直接分析,比如直接打印所需要的信息來檢查xpath語法或者相關解析路徑的正確
如何設置隨機User-Agent可參考我的另一篇博文:https://www.cnblogs.com/RosemaryJie/p/12336662.html
安裝:通過pip命令安裝,jupyter(模塊名)(如何安裝詳細細節可百度)
通過cmd,輸入jupyter notebook打開(在cmd中那個文件夾目錄下輸入命令,文件(file)便儲存在哪個文件夾)
在jupyter中可通過創建selector對象分析網頁(selector對象包含了xpath和css方法)
from scrapy.selector import Selector
from scrapy.http import HemlResponse
import requests
Response = requests . get("www.jer0.com")
response = HtmlResponse ( url="www.jer0.com" , body = Response . text , encoding = ' utf-8' )
selector = Selector(response = response)