抓取csdn的資料

2021-06-13 18:18:23 字數 3726 閱讀 5584

如有不明白的地方歡迎加qq群

14670545**

**質量不行,後面採集起來卡,原因是正則我太菜了,沒有開多執行緒採集。下面我舉例:

目標頁面是有圖有真相:

看看採集後的效果:

下面是採集到的每個帖子樓主的內容以及一些簡單的顯示。之所以沒有顯示出來,因為csdn是用的乙個專門的伺服器,設定了防盜煉,這個自己搗鼓下應該也可以繞過去。

下面我來分析下:

抓取的原理:先獲取對應url頁面的html內容,然後根據找出你要抓取的目標資料的的html結構,看看這個結構是否有某種規律,然後用正則去匹配這個規則,匹配到了以後就可以扣出來。

先看看這個頁面的源**:

再通過谷歌瀏覽器我們再次確認了,目標資料是位於...

中間的

regex regex = new regex("([\\s\\s]*)

([\\s\\s]*)", regexoptions.compiled);

為了美化一下,我加了點css,具體**如下;

頁面:

後台檔案:

using system;

using system.io;

using system.net;

using system.text;

using system.text.regularexpressions;

public partial class testcollection : system.web.ui.page

regex regex = new regex("([\\s\\s]*)

([\\s\\s]*)", regexoptions.compiled);

match match;

match = regex.match(sb.tostring());

if (match.success)

this.pageurlinfo.innerhtml = match.groups[0].value;

myres.close();

}/// /// 獲取頁碼

}

最終效果:

try/// /// 呼叫虛擬的dispose方法, 禁止finalization(終結操作)

///

public void dispose()

/// /// 虛擬的dispose方法

///

protected virtual void dispose(bool disposing)

#endregion

public csdn_bbs()

#region model

private int _id;

private string _title;

private string _href;

private string _content;

private datetime? _date;

private int _clicknum;

/// ///

///

public int id

get

}/// ///

///

public string title

get

}/// ///

///

public string href

get

}/// ///

///

public string content

get

}/// ///

///

public datetime? date

get

}/// ///

///

public int clicknum

get

}#endregion model}}

其它的我就不寫了,獲取每個標題的樓主發的內容和獲取資料的思路一樣,真心話我正則不會,都是依葫蘆畫瓢取目標字串中間的內容。所以獲取樓主的內容我也只能套了好幾層,那個地方的div是迴圈出來的,結構包括css都是乙個樣子,我只能根據微末的變化來這麼處理了。各位看官湊合著看吧

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

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

資料抓取的

總結 在抓資料的時候 尤其是資料多的時候 幾百頁的上萬條資料 先抓主資料列表資料在根據主表抓詳情 1.要有日誌記錄 記錄總條數 log日誌表 第一頁記錄總條數寫入日誌表,確定迴圈多少次 2.回來的資料入庫的時候做好把頁數page也帶上 萬一資料抓取過程中中斷的時候接著抓 就沒必要抓取全部了 3.詳情...

抓取原CSDN上本人部落格頁面內容

建立這個 的目的就是想把原來csdn上的文章搬過來,但是手工一篇一篇的從後台新增太慢了,csdn也沒提供搬家的工具。自己動手弄吧。思路是 首先得到csdn上我的所有文章頁面,csdn上是分頁顯示的 比如這個 然後利用c 訪問到抓取到html 最後用正規表示式篩選出我們需要的內容,在入庫。得到頁面的h...