小編給大家分享一下python爬蟲怎么采集知乎信息匯總,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在沒有學習python之前,對于數據的提取只局限于復制、粘貼之后的保存,一步步的人工操作還是很慢的?,F在的小編已經能夠寫代碼去從網頁上獲取自己想要的內容了,學習成果方面還是有顯著的變化。不知道小伙伴們是不是都會呢?本篇小編就以知乎的數據采集為例,讓大家也練練手。
打開知乎首頁-->登陸-->搜索到一個大V,用谷歌瀏覽器分析點擊關注了哪些人后的請求,通過分析:查找他關注的人的請求鏈接:
https://www.zhihu.com/api/v4/members/excited-vczh/followees?include=data%5B
通過觀察嘗試分析后可知:offset=40是偏移量,通過改變這個值可以實現分頁的效果。
知乎是做了反爬蟲的措施的,所以我們要想爬取知乎信息,還必須要設置請求頭,下面我們來分析請求頭:
圖片中紅箭頭所指就是請求必須需要的值,
authorization:是身份認證信息,每個用戶登錄后都會產生各自的身份認證信息。
User-Agent:是驗證請求是來自正常的瀏覽器訪問
最終代碼如下:
import requests import pandas as pd import time headers={ 'authorization':'',#此處填寫你自己的身份驗證信息 'User-Agent':''#此處填寫你自己瀏覽器的User-Agent } user_data = [] def get_user_data(page): for i in range(page):#翻頁 url = 'https://www.zhihu.com/api/v4/members/excited-vczh/followees?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) response = requests.get(url, headers=headers).json()['data'] user_data.extend(response) #把response數據添加進user_data print('正在爬取第%s頁' % str(i+1)) time.sleep(1) #設置爬取網頁的時間間隔為1秒 if __name__ == '__main__': get_user_data(10) df = pd.DataFrame.from_dict(user_data)#以字典保存數據 df.to_csv('zhihu.csv',encoding='utf_8_sig')#保存到用戶名為zhihu的csv文件中,encoding='utf_8_sig'參數是為了解決中文亂碼的問題 print(df)
以上是python爬蟲怎么采集知乎信息匯總的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。