您好,登錄后才能下訂單哦!
閱讀文本大概需要 3.6 分鐘。
其實,我鼓搗的有些也算不上是爬蟲。
首先,爬蟲不是我的本職工作,我爬蟲一般是為了一些有意思的東西,獲取一些信息,或者是實現一些可以自動化完成的任務,比如簽到。
一般我的爬蟲流程是這樣的:
1、瀏覽器訪問待爬網頁,并提前打開開發者工具(F12
),選中 Nework
選項卡,這樣就可以看到網絡交互信息;
或者,右鍵查看網頁源代碼,查找目標信息。
2、在網絡交互信息流中篩選出自己需要的,然后在 postman
中模擬請求,看是否仍然可以獲取到想要的信息;
postman 除了可以進行請求測試外,還有一個優勢就是,代碼可以直接生成,這樣就可以方便得進行最終的整合了。
3、數據解析,從請求的響應中解析出我們的目標數據,至于得到數據后如何處理,那就是你的事情了。
下面就以大家耳熟能詳(landajie)的豆瓣電影 TOP250 為例。
首先,我們要訪問待爬取的網頁:https://movie.douban.com/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 = "https://movie.douban.com/top250"
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。