Python爬蟲抓取知乎所有使用者資訊
今天用遞迴寫了個抓取知乎所有使用者資訊的爬蟲,原始碼放在了github上,有興趣的同學可以上去下載一下看看,這裡介紹一下程式碼邏輯以及分頁分析,首先看網頁,這裡本人隨便選了一個大V作為入口,然後點開他的關注列表,如圖
注意,本人爬蟲的全稱都是處於非登入狀態的。這裡的粉絲列表以及關注者列表都是後臺ajax請求得到的資料(沒有聽過ajax的童鞋別慌,ajax請求跟普通瀏覽器的請求沒有區別,它主要就是在我們 瀏覽網頁時候偷偷給伺服器傳送的請求,就是為了節省流量以及減少請求數,不然每次看點新資料都全部重新整理網頁,伺服器壓力很大的,所以有了這玩意),然後我們找到粉絲列表以及關注者列表的URL,這個很簡單,在chrome瀏覽器下面點選一下頁數切換就可以找到,如圖
找到關注者以及粉絲的URL就好辦理,下面看一看這些資料,這裡以粉絲的資料舉例,如圖,是一段json
這裡找到了粉絲的資料,不過這裡不是使用者的詳細資訊,只有部分資料,不過他提供了一個token_url,我們就可以獲取這個ID訪問使用者的詳細資訊了,我們看看每個使用者的詳細資訊怎麼提取。這裡樓主發現,在觀看粉絲或者關注列表的時候,網頁是會自動觸發該使用者詳細資訊的請求,如圖
這次獲得的是使用者詳細資訊查詢的URL,這裡看一看這個詳細資訊的URL,如圖
上面介紹了網頁的基礎分析,下面說一下程式碼的思路,這次爬蟲用到了遞迴,本次用的scrapy抓取以及mogodb資料庫儲存的。
首先本人是用了一個大V作為爬蟲第一個網頁,然後分三步,第一步是爬了該大V的詳細資訊然後存入資料庫,第二步是爬取了該大V的粉絲,第三是爬取了該大V 的關注者(其實就是爬取粉絲或者關注者的token_url),完成之後,利用爬取的粉絲以及關注者的資料構造他們每個人詳細資訊的url,然後挖取詳細 資訊存入資料庫。到這裡遞迴第一步算是完成了,然後爬蟲會從每一個粉絲和關注者入手,分別爬取他們的粉絲以及關注者的詳細資料,不斷遞迴
在程式碼裡面還有加入了一些自動翻頁的功能,有興趣可以看看。下面是我們item裡面定義要抓取的資料:
import scrapyclass ZhihuUserItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
answer_count = scrapy.Field()
#回答數量
articles_count = scrapy.Field()
#寫過的文章數
follower_count = scrapy.Field()
#粉絲數量
following_count = scrapy.Field()
#關注了多少人
educations=scrapy.Field()
#教育背景
description = scrapy.Field()
#個人描述
locations = scrapy.Field()
#所在地
url_token =scrapy.Field()
#知乎給予的每個人使用者主頁唯一的ID
name=scrapy.Field()
#使用者暱稱
employments = scrapy.Field()
#工作資訊
business=scrapy.Field()
#一些工作或者商業資訊的合集
user_type =scrapy.Field()
#使用者型別,可以是個人,也可以是團體等等
headline =scrapy.Field()
#個人主頁的標籤
voteup_count = scrapy.Field()
#獲得的贊數
thanked_count=scrapy.Field()
#獲得的感謝數
favorited_count = scrapy.Field()
#被收藏次數
avatar_url = scrapy.Field()
#頭像URl
程式碼一共不足80行,執行了一分鐘就抓了知乎一千多個使用者的資訊,這裡上張結果圖
最近忙完別的事了,終於可以天天寫爬蟲了,不知道大家這篇有什麼問題不,可以隨便向我提
最後提一提,爬取一定要偽裝好headers,裡面有些東西伺服器每次都會檢查。
原文釋出時間為:2017-04-09
本文作者:蝸牛仔
本文來自雲棲社群合作伙伴“Python中文社群”,瞭解相關資訊可以關注“Python中文社群”微信公眾號
相關文章
- Python爬蟲抓取股票資訊Python爬蟲
- 分散式爬蟲之知乎使用者資訊爬取分散式爬蟲
- Python爬蟲學習筆記(1)爬取知乎使用者資訊Python爬蟲筆記
- python爬蟲抓取哈爾濱天氣資訊(靜態爬蟲)Python爬蟲
- python爬蟲-抓取騰訊招聘資訊頁面Python爬蟲
- Python 爬蟲 + 人臉檢測 —— 知乎高顏值圖片抓取Python爬蟲
- python 爬蟲——登入知乎Python爬蟲
- 爬蟲app資訊抓取之apk反編譯抓取爬蟲APPAPK編譯
- python爬蟲如何爬知乎的話題?Python爬蟲
- Python爬蟲二:抓取京東商品列表頁面資訊Python爬蟲
- 用python實現的抓取騰訊視訊所有電影的爬蟲Python爬蟲
- Scrapy爬蟲 - 獲取知乎使用者資料爬蟲
- Python爬蟲之模擬知乎登入Python爬蟲
- 用Python爬蟲抓取代理IPPython爬蟲
- [Python]爬蟲獲取知乎某個問題下所有圖片並去除水印Python爬蟲
- Python爬蟲新手教程: 知乎文章圖片爬取器Python爬蟲
- python爬蟲--招聘資訊Python爬蟲
- 爬蟲專案(一)爬蟲+jsoup輕鬆爬知乎爬蟲JS
- Python爬蟲抓取技術的門道Python爬蟲
- python爬蟲之抓取小說(逆天邪神)Python爬蟲
- Python爬蟲使用代理proxy抓取網頁Python爬蟲網頁
- 新手爬蟲教程:Python爬取知乎文章中的圖片爬蟲Python
- python爬蟲——爬取大學排名資訊Python爬蟲
- Scrapy爬蟲:實習僧網最新招聘資訊抓取爬蟲
- 【php爬蟲】百萬級別知乎使用者資料爬取與分析PHP爬蟲
- PHP爬蟲:百萬級別知乎使用者資料爬取與分析PHP爬蟲
- python爬蟲專案(新手教程)之知乎(requests方式)Python爬蟲
- 爬蟲抓取UserAgent問題爬蟲
- Python爬蟲,抓取淘寶商品評論內容!Python爬蟲
- python爬蟲-抓取內涵吧內涵段子Python爬蟲
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- 超5億LinkedIn使用者資訊遭販賣,疑為爬蟲抓取洩露爬蟲
- [python爬蟲] Selenium爬取新浪微博內容及使用者資訊Python爬蟲
- 網路爬蟲:使用Scrapy框架編寫一個抓取書籍資訊的爬蟲服務爬蟲框架
- 爬蟲實戰(一):爬取微博使用者資訊爬蟲
- python爬蟲練習之爬取豆瓣讀書所有標籤下的書籍資訊Python爬蟲
- 爬蟲原理與資料抓取爬蟲
- Google 爬蟲如何抓取 JavaScript 的?Go爬蟲JavaScript