網頁資訊抓取,分析方法記錄

2021-06-14 00:55:27 字數 3033 閱讀 3403

一切為了做個好爸爸。其實爸爸這個詞,真的很汗顏,在我們還沒有學會如何孝敬父母的時候,卻已經馬上要為人父母了。驚喜總是來的很快,不自覺中,自己已經成長了。雖然不一定是個稱職的爸爸,但是我想大家在這個時候也是想做的更好。

做網路資料抓取,其實辦法並非唯一的,不過為了直觀,我選用了比較麻煩的方式。那就是前台用webbrowser控制項,後台用htmlagilitypack這個元件來完成,其實涉及到的知識點也比較簡單。

2、htmlagilitypack 這個控制項很強大,本來之前是想用xml解析的方式來做的,但是發現html頁面,果然有很多標籤並非很標準的xml方式,解析中出錯很多,所以無奈只能選用這個控制項,但是好在它的使用方法非常簡單。具體的使用方法,在周公(周金橋) 這篇文件中有詳細的介紹,此處我只列舉最主要的路徑檢索部分。

路徑表示式:

nodename:選取此節點的所有子節點。 

/:從根節點擊取。 

//:從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置。 

.:選取當前節點。 

..:選取當前節點的父節點。

<?xml version="1.0" encoding="utf-8"?> 

在asp.net中使用highcharts js圖表

2011-04-07

log4net使用詳解(續)

2023年11月23日

j2me開發的一般步驟

2023年06月12日

powerdesign高階應用

2007-09-08

針對上面的xml檔案,我們列出了帶有謂語的一些路徑表示式,以及表示式的結果:

/articles/article[1]:選取屬於articles子元素的第乙個article元素。 

/articles/article[last()]:選取屬於articles子元素的最後乙個article元素。 

/articles/article[last()-1]:選取屬於articles子元素的倒數第二個article元素。 

/articles/article[position()<3]:選取最前面的兩個屬於 bookstore 元素的子元素的article元素。 

//title[@lang]:選取所有擁有名為lang的屬性的title元素。 

//createat[@type='zh-cn']:選取所有createat元素,且這些元素擁有值為zh-cn的type屬性。 

/articles/article[order>2]:選取articles元素的所有article元素,且其中的order元素的值須大於2。 

/articles/article[order<3]/title:選取articles元素中的article元素的所有title元素,且其中的order元素的值須小於3。

**中最關鍵的使用部分如下:

htmldocument doc = web.document as htmldocument;//web就是 if (doc ==null)

ihtmlelement ielement = doc.documentelement;

string body = ((mshtml.htmlhtmlelement)(ielement)).innerhtml;

streamwriter sw = new streamwriter(path, false, encoding);

sw.write(body);

sw.close();

htmldocument document = new htmldocument();

encoding pageencoding = encoding.getencoding("gb2312");

document.load(path, pageencoding);

htmlnode roothtml = document.documentnode;

htmlnodecollection uili = roothtml.selectnodes("//div[@class='eglistsj']/ul/li/a");

if (uili == null)

foreach (htmlnode node in uili)

另外,因為子頁面經常是幾十個,所以新增了自動定時重新整理webbrowser位址和對頁面**進行分析的功能。

threadstart mystart;

thread thestop;

public readonly object mylockword = new object();

private void tostop()

);thread.sleep(7000);

this.dispatcher.invoke(delegate

);}

}

吧,主要是歌曲列表可以拿到了。哈哈

以上為比較麻煩的一種網頁內容獲取方式,下面引用同事在做類似網頁內容獲取時所用到的方法:

/// /// 從網上獲取指定url的html原始碼

///

/// url

/// html原始碼

private static string gethtmlbywebrequest(string strurl)

stream datastream = response.getresponsestream();

streamreader reader = new streamreader(datastream, encoding);

strret = reader.readtoend();

reader.close();

datastream.close();

response.close();

}else

return strret;

}

php 抓取網頁資訊

最近要抓取網頁資料,就用php試了下,發現了乙個不錯的php抓取資料的整合類 html dom.php,而根據網頁的特點大致分為兩類,一類是網頁dom結構相同,url類似只是改了部分引數,這個 直接用 html file get html url 然後根據網頁dom用 html find plain...

動態抓取網頁資訊

前幾天在做資料庫實驗時,總是手動的向資料庫中新增少量的固定資料,於是就想如何向資料庫中匯入大量的動態的資料?在網上了解了網路爬蟲,它可以幫助我們完成這項工作,關於網路爬蟲的原理和基礎知識,網上有大量的相關介紹,本人不想在累述,個人覺得下面的文章寫得非常的好 網路爬蟲基本原理 一 網路爬蟲基本原理二 ...

c 抓取網頁分析

目的 抓取網頁,分析網頁內容,進行處理獲取資訊。例子 抓km169上的adsl使用者的費用資訊,分析儲存到本地資料庫。步驟 1 抓取。2 分析。3 儲存。王 2006 2 13 05 48 王 2006 2 13 05 56 2 分析 public string get return null 此處...