您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(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ò)抓包獲取,流程如圖:
所以我們得出真實(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)的鍵
以下為全部代碼:
# -*- 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ò),可以把它分享出去讓更多的人看到。
免責(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)容。