一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

如何利用 C# 爬取帶 Token 驗證的網(wǎng)站數(shù)據(jù)?

 老馬的程序人生 2020-08-17

在對文本數(shù)據(jù)的情感分析中,基于情感詞典的方法是最簡單也是最常用的一種了。

它的大體思路如下:

對文檔分詞,找出文檔中的情感詞、否定詞以及程度副詞,然后判斷每個情感詞之前是否有否定詞及程度副詞,將它之前的否定詞和程度副詞劃分為一個組,如果有否定詞將情感詞的情感權(quán)值乘以-1,如果有程度副詞就乘以程度副詞的程度值,最后所有組的得分加起來,大于 0 的歸于正向,小于 0 的歸于負(fù)向。

這兩天,學(xué)校的一個團隊讓我?guī)兔ε廊∧尘W(wǎng)站的兩份帶有權(quán)值的情感詞典。

第一份是“臺灣大學(xué)情感詞匯庫”,有 11086 個帶有權(quán)值的情感詞。

臺灣大學(xué)情感詞匯庫

第二份是“萌泰情感詞匯庫”,有 27466 個帶有權(quán)值的情感詞。

萌泰情感詞匯庫

分析這個網(wǎng)站,我們發(fā)現(xiàn)每一個網(wǎng)絡(luò)請求都需要攜帶 Token,即身份認(rèn)證。

所以,我們需要先通過登陸請求,獲取到該用戶的 Token,之后的每次請求帶上該 Token 才能爬取到該網(wǎng)站的數(shù)據(jù)。


為了快速完成爬取這兩份情感詞典的任務(wù),我使用了兩套開源代碼,RestSharpNewtonsoft.Json。

RestSharp

利用該開源代碼可以得到網(wǎng)絡(luò)請求之后的 Json 數(shù)據(jù),其下載地址如下:

https://github.com/restsharp/RestSharp

RestSharp

Newtonsoft.Json

利用該開源代碼可以對得到的 Json 數(shù)據(jù)進行反序列化,得到 C# 對應(yīng)的類,其下載地址如下:

https://github.com/JamesNK/Newtonsoft.Json

Newtonsoft.Json

Newtonsoft.Json 這套開源代碼,我在 如何利用 C# 爬取「貓眼電影專業(yè)版:票房」數(shù)據(jù)! 以及 如何做一款「桌面版百度翻譯」軟件? 中使用過,以前網(wǎng)絡(luò)請求部分都是通過 HttpWebRequest直接寫的,這次偷懶使用了 RestSharp 這套來源代碼。

如果大家對這兩套開源代碼感興趣,給我留言,我再來寫幾篇圖文介紹它們,下面來看看爬取情感詞典的代碼。

1. 構(gòu)造接收 Token 的類 UserInfor

public class Token
{

    public string token;
}

public class UserInfor
{

    public Token rt_info;
}

2. 得到登陸用戶的Token數(shù)據(jù)。

public string GetToken(string baseUrl,string username,string password)
{
    string value = "{\"username\":\"" + username + "\",\"password\":\"" + password + "\"}";

    RestClient client = new RestClient(baseUrl);
    RestRequest request = new RestRequest(Method.POST);
    request.AddHeader("cache-control""no-cache");
    request.AddHeader("Content-Type""application/json;charset=UTF-8");
    request.AddParameter("application/json", value, ParameterType.RequestBody);

    IRestResponse response = client.Execute(request);
    StringReader sr = new StringReader(response.Content);
    JsonTextReader jsonReader = new JsonTextReader(sr);
    JsonSerializer serializer = new JsonSerializer();

    UserInfor user = serializer.Deserialize<UserInfor>(jsonReader);
    return user.rt_info.token;
}

3. 構(gòu)造接收“情感詞典”的類 JsonWord

public class Word
{
    public string word;
    public string score;
    public override string ToString()
    
{
        return word + "," + score;
    }
}

public class MapInfo
{
    public List<Word> words;
}

public class JsonWord
{
    public MapInfo rt_mapinfo;
}

4. 得到所需要的情感詞典。

public List<Word> GetDictionary(string baseUrl,string token,int dictionaryId)
{
    string value = "{\"dictionaryId\":" + dictionaryId + ",\"name\":\"\",\"pageNow\":1,\"pageSize\":200000}";
    RestClient client = new RestClient(baseUrl);

    RestRequest request = new RestRequest(Method.POST);
    request.AddHeader("cache-control""no-cache");
    request.AddHeader("Content-Type""application/json");
    request.AddHeader("Authorization", token);
    request.AddParameter("application/json",value, ParameterType.RequestBody);

    IRestResponse response = client.Execute(request);
    StringReader sr = new StringReader(response.Content);
    JsonTextReader jsonReader = new JsonTextReader(sr);
    JsonSerializer serializer = new JsonSerializer();

    JsonWord r = serializer.Deserialize<JsonWord>(jsonReader);
    return r.rt_mapinfo.words;
}

5. 輸出感情詞典。

static void SaveToFile(List<Word> lst)
{
    string str = string.Empty;
    for (int i = 0; i < lst.Count; i++)
    {
        str += lst[i] + "\r\n";
    }

    string temp = Environment.GetEnvironmentVariable("TEMP");
    temp += "\\words.txt";
    StreamWriter sw = File.CreateText(temp);
    sw.Write(str);

    Process.Start(temp);
    sw.Close();
}

包含 11086 個詞匯以及評分的“臺灣大學(xué)情感詞匯”爬取結(jié)果如下:

臺灣大學(xué)情感詞匯

包含 27466 個詞匯以及評分的“蒙泰感情詞匯”爬取結(jié)果如下:

蒙泰感情詞匯

通過以上的介紹,如何利用 C# 爬取帶 Token 驗證的網(wǎng)站數(shù)據(jù)?就介紹完了,如果大家發(fā)現(xiàn)所要爬取的網(wǎng)站不能直接得到HTML DOM TREE,這個網(wǎng)站或許就是利用前后端分離技術(shù)完成的,如果這樣的網(wǎng)站每一次請求都需要帶Token,可以嘗試使用我今天介紹的方法。好了,今天就到這里吧!See You!


    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    色婷婷中文字幕在线视频| 国产男女激情在线视频| 深夜福利欲求不满的人妻| 午夜久久精品福利视频| 色综合伊人天天综合网中文| 亚洲日本中文字幕视频在线观看| 婷婷色香五月综合激激情| 国产永久免费高清在线精品 | 国产成人精品国产成人亚洲| 国产高清精品福利私拍| 午夜成年人黄片免费观看| 大香蕉精品视频一区二区| 香蕉网尹人综合在线观看| 久久人人爽人人爽大片av| 日本二区三区在线播放| 夜夜躁狠狠躁日日躁视频黑人| 亚洲av首页免费在线观看| 国产视频在线一区二区| 91日韩欧美中文字幕| 激情偷拍一区二区三区视频| 在线观看日韩欧美综合黄片| 亚洲国产精品久久精品成人| 精品国产丝袜一区二区| 激情内射日本一区二区三区| 在线观看免费视频你懂的| 九九热在线视频精品免费| 国产精品偷拍视频一区| 国产精品国产亚洲区久久| 日韩欧美三级视频在线| 熟女白浆精品一区二区| 91精品视频免费播放| 国产欧美日韩精品一区二| 欧美一区二区三区五月婷婷| av一区二区三区天堂| 欧美自拍系列精品在线| 成人精品国产亚洲av久久| 欧美av人人妻av人人爽蜜桃| 内射精品欧美一区二区三区久久久| 高清一区二区三区大伊香蕉| 日韩人妻免费视频一专区| 伊人久久青草地婷婷综合|