目標:抓取知乎最高點贊者的關注者的頭像,并下載于本地文件夾。
我們采用:requests(獲?。猨son——urlretrieve(下載)
廢話不多說,先上結果與代碼:


前言:
①:請求頭(headers)
知乎對爬蟲進行了限制,需要加上headers才能爬取。
請求頭信息承載了關于客戶端瀏覽器、請求頁面、服務器等相關信息,用來告知服務器發(fā)起請求的客戶端的具體信息。
對比知乎的請求頭信息和常見的請求頭信息,發(fā)現(xiàn)知乎請求頭多了authorization和X-UDID的信息
②:urlretrieve
urllib模塊提供的urlretrieve()函數(shù),可直接將遠程數(shù)據(jù)下載到本地
③:抓取頁面,如圖

現(xiàn)重點講解代碼:
一:請求頭(headers)
每個網(wǎng)站的請求頭都會不一樣,但爬取得網(wǎng)站,都有例子,大家在不初期,跟著選就行
Authorization:HTTP授權的授權證書
User-Agent:代表你用哪種瀏覽器
X-UDID:一串驗證碼
二:真實的urls
異步加載中,真實的url并非https://www.zhihu.com/people/feifeimao/followers,真正的url需要我們通過抓包獲取,流程如圖:


通過加載更多,我們發(fā)現(xiàn)url中start隨之同步變化,變化的間隔為20,即offset=20(第一頁),start=40(第二頁),以此類推,所以我們得出.format(i*20),大家可以對比第三篇的翻頁。
三:img_url
我們抓取的img的url需要有序的排列,即采用append函數(shù),依次把他們放入img_url。
四:json
之前我們用得.text是需要網(wǎng)頁返回文本的信息,而這里返回的是json文件,所以用.json
json結構很清晰,大家一層一層選取就好了
取出字典中的值,需要在方括號中指明值對應的鍵

總結:
1:翻頁,就是尋找url中的規(guī)律,大家可以對比第二、三篇的翻頁哦,都是一個套路。
2:請求頭(headers)就像一把開啟大門的鑰匙
3:抓取的頭像url尺寸很小,我們把_is去掉,就變成正常尺寸了,不過這需要用到正則re,目前我沒有學習過re,后續(xù)的文章將會大家解決這個坑哦
https://pic2.zhimg.com/v2-9686febfd53ca3defe8112790b24e67e_is.jpg。

下一篇文章,將對前四篇的語法做詳細講解。
有不清楚的地方,大家可以留言,點贊,我看到了,會第一時間回復你。