通用爬蟲思路
1. 準備URL
- 準備start_url
- url地址規律不明顯,總數不確定
- 通過代碼查找下一頁url
- xpath定位
- 不明顯,尋找url地址,部分參數可能放在當前的響應中(比如當前頁碼數和總頁碼數會在當前響應中)
- 準備url_list
- 頁碼總數明確
- url地址規律明顯
2. 發送請求,獲取響應
- 添加隨機的User-Agent,反反爬蟲
- 添加隨機代理的IP,建立ip代理池,反反爬蟲
- 在對方判斷我們是爬蟲後,應該添加更多的headers字段,包括cookie
- cookie的處理可以使用session模塊解決
- 準備一堆可以使用的cookie,組成cookie池
- 如果不登錄
- 準備剛開始可以成功請求網址的cookie,即接收對方網址設置在response中的cookie
- 下一次請求的時候,使用之前的cookie來請求
- 如果要登錄
- 準備多個賬號
- 使用程序獲取每個賬號的cookie
- 之後請求登錄之後才能訪問的網址隨機使用已有的cookie
- 如果不登錄
3. 提取數據
- 確定數據的位置
- 如果數據在當前的url地址響應中
- 提取的是列表頁的數據(第一層)
- 提取詳情頁的數據(第二層)
- 尋找詳情頁的url,發送請求,提取數據,返回數據存儲
- 如果數據不在當前的url地址相應中
- 在其他的響應中,尋找數據的位置
-
- 從network結果中從上往下找
-
- 使用Chrome中的過濾條件,選擇出js.css.img之外的按鈕選項
-
- 使用Chrome中的search all file,搜索關鍵數字和英文
-
- 在其他的響應中,尋找數據的位置
- 如果數據在當前的url地址響應中
- 數據提取
- xpath,從html提取數據,進行分組,之後每一組再進行提取
- re,提取特定的字符串
- json數據,轉換爲python字典,然後re查找提取
4. 保存
- 保存在本地,txt,json,csv
- 保存到數據庫