爬蟲 抓取知乎百萬使用者資訊之爬蟲模組

2022-07-06 20:54:11 字數 2355 閱讀 9677

點選我前往github檢視源**   別忘記star

usermanage是獲取使用者資訊的爬蟲模組

public

class

usermanage

建構函式

使用者主頁的url格式為""+url_token+"/following";

public usermanage(string

urltoken)

先封裝乙個獲取html頁面的方法

private

bool

gethtml()

拿到了html頁面,接下來是剝取頁面中的json,借助htmlagilitypack

public

void

analyse()

毫秒", watch.elapsedmilliseconds.tostring());

}catch

(exception ex)

}}

新增使用者的關注列表的鏈結

private

void getuserflowerandnext(string

json)

對json資料進一步剝取,只要使用者的資訊,借助json解析工具newtonsoft.json

private

void getuserinformation(string

json)

現在來完成下analyse函式

public  void  analyse()

毫秒", watch.elapsedmilliseconds.tostring());

}catch (exception ex)

}}

}

urltask是從nexturl佇列獲取使用者的關注列表的url,獲取關注列表。伺服器返回的json的資料

封裝乙個物件的序列化和反序列化的類

public

class

serializehelper

//////

反序列化操作

/// ///

//////

public

static t deserializetoobject(string

str)

}

封裝urltask類

public classurltask

private string jsonstring

public urltask(string_url)

}

新增乙個獲取資源的方法

private boolgethtml()

解析json方法

public  voidanalyse() 

foreach (var item inresult.data)

}watch.stop();

console.writeline("解析json用了毫秒",watch.elapsedmilliseconds.tostring());}}

catch(exception ex)

}

解析:如果result.paging.is_end為true,那麼這個是使用者關注列表的最後一頁,那麼它的nexturl應該加入佇列,負責不要加入,對於後面的使用者陣列,因為資訊不去全,不要了,有了id前往主頁獲取詳細資訊。

模組組合

封裝乙個乙個方法,從佇列拿到nextutl,前往使用者的關注列表,拿到更多使用者id

private static voidgetnexturl()

}

封裝乙個方法,迴圈從佇列獲取使用者的urltoken(如果佇列空了,執行getnexturl),前往使用者主頁,獲取資訊

private static void getuser(objectdata)

else}}

在main函式裡面執行這些方法,由於任務量大,採用多執行緒,執行緒數視情況而定

for (int i = 0; i < 10; i++)

新增種子資料,用於剛開始時候佇列都是空的,需要新增種子資料

手動新增,在redile-cl.exe敲命令

在main函式中加入

usertask task=newusertask(「某個使用者的urltoken」);

task.analyse();

執行一次之後要注釋掉,避免重複

爬蟲 抓取百萬知乎使用者設計之實體設計

點選我前往github檢視源 一.實體的關係 實體是根據返回的json資料來設計的 教育經歷方面 使用者可以有很多教育經理,user和education是一對多的關係,乙個education對應乙個education 乙個使用者可以有多個工作,當然很多人可以從事同乙份工作,每份工作對應一家公司,對應...

Python爬蟲之模擬登陸知乎

在chrome瀏覽器下抓取登陸過程的包 注意把preserve log勾上 表單的結構主要包括 xsrf,password,phone num 我們要找到 xsrf的值,重新載入zhihu.com之後我們可以發現response裡面有 xsrf 我們就可以把 xsrf的值讀取出來 然後set一下co...

Python網路爬蟲之抓取訂餐資訊

本文以大眾點評網為例,獲取頁面的餐館資訊,以達到練習使用python的目的。import urllib.request import re def fetchfood url 模擬使用瀏覽器瀏覽大眾點評的方式瀏覽大眾點評 headers user agent opener urllib.reques...