溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

用python爬蟲(chóng)收集知乎大V頭像的示例

發(fā)布時(shí)間:2020-11-21 13:35:18 來(lái)源:億速云 閱讀:204 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)用python爬蟲(chóng)收集知乎大V頭像的示例,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一:請(qǐng)求頭(headers)

每個(gè)網(wǎng)站的請(qǐng)求頭都會(huì)不一樣,但爬取得網(wǎng)站,都有例子,大家在不初期,跟著選就行

Authorization:HTTP授權(quán)的授權(quán)證書(shū)

User-Agent:代表你用哪種瀏覽器

X-UDID:一串驗(yàn)證碼

真實(shí)的urls

 異步加載中,真實(shí)的url并非https://www.zhihu.com/people/feifeimao/followers,真正的url需要我們通過(guò)抓包獲取,流程如圖:

 

用python爬蟲(chóng)收集知乎大V頭像的示例

用python爬蟲(chóng)收集知乎大V頭像的示例

 

所以我們得出真實(shí)url:

https://www.zhihu.com/api/v4/members/feifeimao/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=20&limit=20

通過(guò)加載更多,我們發(fā)現(xiàn)url中start隨之同步變化,變化的間隔為20,即offset=20(第一頁(yè)),start=40(第二頁(yè)),以此類(lèi)推,所以我們得出.format(i*20),大家可以對(duì)比第三篇的翻頁(yè)。

三:img_url

我們抓取的img的url需要有序的排列,即采用append函數(shù),依次把他們放入img_url。

四:json

之前我們用得.text是需要網(wǎng)頁(yè)返回文本的信息,而這里返回的是json文件,所以用.json

json結(jié)構(gòu)很清晰,大家一層一層選取就好了

取出字典中的值,需要在方括號(hào)中指明值對(duì)應(yīng)的鍵

 用python爬蟲(chóng)收集知乎大V頭像的示例

以下為全部代碼:

# -*- coding: utf-8 -*-
import requests
import json
from urllib.request import urlretrieve
 
headers = {'authorization':'Bearer Mi4xQXN3S0F3QUFBQUFBUUVJSjdTempDaGNBQUFCaEFsVk5BQzRmV3dDVVJzeU9NOWxNU0pZT1BNdFJ5bTlrSzk3MU1B|1513218048|1e03f7e7f26825482a72e4a629ef80292847548e',
           'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
           'x-udid':'AEBCCe0s4wqPToZZF6LV3roAjT8uEikZF1k=',
           }   #請(qǐng)求頭
urls = ['https://www.zhihu.com/api/v4/members/feifeimao/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_' \
      'followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset={}&limit=20'.format(i*20) for i in range (0,5)]
img_urls = []   #用來(lái)存所有的img_url
for url in urls:
    datas = requests.get(url,headers = headers).json()['data']   #獲取json文件下的data
    for it in datas:
        img_url = it['avatar_url']   #獲取頭像url
        img_urls.append(img_url)      #把獲取的url依次放入img_urls
 
    i = 0   #計(jì)數(shù)
    for it in img_urls:
        urlretrieve(it,'D://%s.jpg' % i)   #通過(guò)url,依次下載頭像,并保存于D盤(pán)
        i = i+1   #i依次累加

關(guān)于用python爬蟲(chóng)收集知乎大V頭像的示例就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI