這篇文章將為大家詳細(xì)講解有關(guān)用python爬蟲收集知乎大V頭像的示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為金溪等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及金溪網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、金溪網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!一:請求頭(headers)
每個網(wǎng)站的請求頭都會不一樣,但爬取得網(wǎng)站,都有例子,大家在不初期,跟著選就行
Authorization:HTTP授權(quán)的授權(quán)證書
User-Agent:代表你用哪種瀏覽器
X-UDID:一串驗證碼
二:真實的urls
異步加載中,真實的url并非https://www.zhihu.com/people/feifeimao/followers,真正的url需要我們通過抓包獲取,流程如圖:
所以我們得出真實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
通過加載更多,我們發(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結(jié)構(gòu)很清晰,大家一層一層選取就好了
取出字典中的值,需要在方括號中指明值對應(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=', } #請求頭 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 = [] #用來存所有的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 #計數(shù) for it in img_urls: urlretrieve(it,'D://%s.jpg' % i) #通過url,依次下載頭像,并保存于D盤 i = i+1 #i依次累加
關(guān)于用python爬蟲收集知乎大V頭像的示例就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。