個人分享 | 我的常規爬蟲流程
閱讀文字大概需要 3.6 分鐘。
其實,我鼓搗的有些也算不上是爬蟲。
首先,爬蟲不是我的本職工作,我爬蟲一般是為了一些有意思的東西,獲取一些資訊,或者是實現一些可以自動化完成的任務,比如簽到。
一般我的爬蟲流程是這樣的:
1、瀏覽器訪問待爬網頁,並提前開啟開發者工具(F12
),選中 Nework
選項卡,這樣就可以看到網路互動資訊;
或者,右鍵檢視網頁原始碼,查詢目標資訊。
2、在網路互動資訊流中篩選出自己需要的,然後在 postman
中模擬請求,看是否仍然可以獲取到想要的資訊;
postman 除了可以進行請求測試外,還有一個優勢就是,程式碼可以直接生成,這樣就可以方便得進行最終的整合了。
3、資料解析,從請求的響應中解析出我們的目標資料,至於得到資料後如何處理,那就是你的事情了。
下面就以大家耳熟能詳(landajie)的豆瓣電影 TOP250 為例。
例項分析
請求梳理
首先,我們要訪問待爬取的網頁:。
一般情況下,我都是直接按下 F12
調出 DevTools,點選 Network 選項卡:
有時請求已經載入完成了,可以把資料全部 clear 掉,然後重新重新整理網頁,這時候請求流會重新載入。
這裡有幾個點需要注意,主要是下圖圈紅的幾個:
1、有些網頁請求會有自動跳轉,這是請求流會重新載入,這是勾選了 Preserve log
的話,資料就會持續列印,不會被沖掉;
2、勾選 Disable cache
可以禁用快取;
3、請求流的篩選:XHR
是 XMLHttpRequest 的意思,大多數情況下只要點選 XHR 就行了,但是若此時發現沒有想要的請求資料,那麼就要點選 All
展示所有請求流。
比如豆瓣的這個,XHR 中是沒有我們的目標請求的。
請求模擬
透過上面的步驟,我們能夠確定透過哪些請求能夠得到我們的目標資料,然後把這些請求放到 postman 中進行模擬。
比如,我們在 postman 中訪問豆瓣的網站:
這裡的請求比較簡單,直接 get url 就能獲取到目標資料。
其實大部分情況下,都是需要新增一些訪問引數的,這是我們可以在 Headers 裡新增。
另外,postman 還支援其他請求,如 post、delete 等等:
生成程式碼
點選右側的 code
按鈕,就可以獲取到對應的程式碼:
支援生成多種語言的程式碼:
比如,我們這裡選擇 Python Requests,就可以得到如下程式碼:
import requests
url = ""
headers = {
'cache-control': "no-cache",
'postman-token': "d2e1def2-7a3c-7bcc-50d0-eb6baf18560c"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
這樣我們只要把這些程式碼合併到我們的業務邏輯裡就行了,當然其中的 postman 相關的引數是不需要的。
資料解析
下面要做的就是從響應中解析目標資料。
有些響應是返回 HTML,有些是返回 json 資料,有的還是返回 XML,當然也有其他的,這就需要不同的解析邏輯。
具體如何解析,這裡我們不再贅述,之前的爬蟲文章中都有涉及,有興趣的可以翻一翻。
總結
本來打算寫 postman 的使用的,但是寫來寫去,成了我的一般爬蟲流程梳理。
本文涉及的爬蟲都是比較初級的,至於 ip 代理、驗證碼解析等高階功能,後面有時間再單獨說。
不知道你的一般流程是什麼樣的,不妨留言分享下
原文連結:https://mp.weixin.qq.com/s/FgoEdLlAxYVgWD56X06hRA
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559358/viewspace-2218224/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分享個人開源爬蟲框架爬蟲框架
- 網路爬蟲常見問題(個人總結)爬蟲
- 我的第一個 scrapy 爬蟲爬蟲
- 爬蟲個人總結爬蟲
- 8個高效的Python爬蟲框架分享!Python爬蟲框架
- 我的 Python 網路爬蟲直播分享要來了!Python爬蟲
- 我的第一個Python爬蟲——談心得Python爬蟲
- 什麼是爬蟲?Python爬蟲的工作流程怎樣?爬蟲Python
- 我常用的puppeteer爬蟲api爬蟲API
- 每天一個爬蟲-learnku我的部落格列表爬蟲
- Java 月薪25K的爬蟲工程師對爬蟲的流程做了一個非常全面的總結!Java爬蟲工程師
- [爬蟲手記] 我是如何在3分鐘內開發完一個爬蟲的爬蟲
- 爬蟲抓取網頁的詳細流程爬蟲網頁
- 網路爬蟲流程總結爬蟲
- 分享5個爬蟲專業部落格網站爬蟲網站
- 一個爬蟲的故事:這是人乾的事兒?爬蟲
- 網路爬蟲之關於爬蟲 http 代理的常見使用方式爬蟲HTTP
- 大規模非同步新聞爬蟲:實現一個同步定向新聞爬蟲非同步爬蟲
- python爬蟲-1w+套個人簡歷模板爬取Python爬蟲
- 當我遇到了爬蟲爬蟲
- 常見的三種反爬蟲措施爬蟲
- 爬蟲中代理IP的常見方案爬蟲
- 我去!爬蟲遇到字型反爬,哭了爬蟲
- 那些年,我爬過的北科(序)——我和爬蟲的緣分爬蟲
- 什麼是Python網路爬蟲?常見的網路爬蟲有哪些?Python爬蟲
- 我爬取了爬蟲崗位薪資,分析後發現爬蟲真香爬蟲
- Python爬蟲的工作流程是怎樣的?Python爬蟲
- python爬蟲庫技術分享Python爬蟲
- Python爬蟲教程+書籍分享Python爬蟲
- Java 的正規表示式與爬蟲Java爬蟲
- Golang爬蟲+正規表示式Golang爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 常見的爬蟲型別有什麼?爬蟲型別
- 導致Python爬蟲封禁的常見原因Python爬蟲
- python爬蟲常見的那點問題!Python爬蟲
- 五個常用的爬蟲包爬蟲
- 個人利用Python爬蟲技術怎麼掙錢Python爬蟲
- 寫個爬蟲唄爬蟲