C 採集CSDN單個部落格所有文章

2021-06-18 08:37:40 字數 2246 閱讀 1661

原理:

通過htmlagilitypack解析html原始碼得到所需的資料。

1、首先通過 底部的「xx條資料 共xx頁」,獲取得總頁數;

3、獲取單個文章的內容。

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.io;

using system.diagnostics;

using system.collections;

using system.threading;

using system.threading.tasks;

using system.xml.linq;

using system.net;

using htmlagilitypack;

namespace demo

//獲取總頁數

private int getpagecount(string pagecounturl)

//開始採集按鈕

private void btncollect_click(object sender, eventargs e)

}}).continuewith((x) =>

taskfactory.continuewhenall(tasks, taskended, taskcontinuationoptions.none);

});}

/// /// 單篇文章採集

///

///

void collectarticle(object state)

篇文章, 正在採集中第篇.", articleurllist.count, cnt));

string articleurl = (string)state;

string firstarticlehtml = gethtmlsource(articleurl, encoding.utf8);

if (string.isnullorempty(firstarticlehtml)) return;

htmlnode rootnode = gethtmlnodebyhtml(firstarticlehtml);

string articletitle = getnodeinnertext(rootnode, articletitlepath);

string postdate = getnodeinnertext(rootnode, postdatepath);

string articlecontent = getnodeinnertext(rootnode, articlecontentpath);

//採集結果處理:儲存到資料庫或其它......

string blogfile = bloguser + ".txt";

using (streamwriter sw = new streamwriter(blogfile, true))

}

}private void taskended(task task)

//通過網頁url獲取htmlnode

private htmlnode gethtmlnodebyurl(string url, encoding encoding)

//通過網頁html源**獲取htmlnode

private htmlnode gethtmlnodebyhtml(string htmlsource)

/// /// 獲取網頁源**

///

private string gethtmlsource(string url, encoding encoding)

catch

return result;

}private string getnodeinnertext(htmlnode srcnode, string path)

private void setstatutext(string s)

);}

}public static class extenstions

}}

抓取csdn部落格的所有文章url

輸入部落格的主網域名稱,就可以抓取這個部落格所有的文章編號。coding utf8 import string import urllib2 import re import time import random class csdn spider def init self,url self.my...

Python 爬取CSDN部落格文章

新建乙個module,用於根據使用者名稱來獲取文章的url coding utf 8 from bs4 import beautifulsoup import requests 獲取部落格文章數量 def get page size user name article list url user n...

如何爬取CSDN部落格中分欄的所有文章的標題 鏈結

import re import requests from bs4 import beautifulsoup headers 網頁鏈結 link 獲取網頁 r requests.get link,headers headers,timeout 10 使用soup進行過濾 soup beautifu...