最近有個(gè)小程序需要采集網(wǎng)頁(yè)源代碼,但有的網(wǎng)頁(yè)中JS腳本又會(huì)生成額外的代碼,比如http://www.cnblogs.com/lidabo/p/4169396.html
紅框部分便是另外加載的代碼。
此處可以看到web前端是有 "操作系統(tǒng)" 幾個(gè)字的,但查看網(wǎng)頁(yè)源代碼之后卻搜不到這幾個(gè)字
C#有個(gè)webbrowser控件可以等網(wǎng)頁(yè)加載完之后獲取瀏覽器上所有的網(wǎng)頁(yè)源代碼(也包括額外被JS加載進(jìn)來(lái)的代碼)
【第一次】試驗(yàn)
WebBrowser webBrowser1 = new WebBrowser();
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.cnblogs.com/lidabo/p/4169396.html");
//加載完畢后觸發(fā)事件webBrowser1_DocumentCompleted
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
private void webBrowser1_DocumentCompleted(object sender, EventArgs e)//這個(gè)就是當(dāng)網(wǎng)頁(yè)載入完畢后要進(jìn)行的操作
{
//將webBrowser顯示的代碼傳入richTextBox以便調(diào)試
richTextBox1.Text = webBrowser1.DocumentText;
}
結(jié)果:webbrowser加載完這個(gè)頁(yè)面之后,richTextBox1.Text獲取的代碼里面找不到 "操作系統(tǒng)" 幾個(gè)字 , 獲取的代碼有1063行
網(wǎng)頁(yè)在加載的過(guò)程中,webBrowser1_DocumentCompleted可能會(huì)觸發(fā)一次以上,且相同網(wǎng)頁(yè)可能觸發(fā)次數(shù)不盡相同
有的網(wǎng)頁(yè)會(huì)多次觸發(fā)webBrowser1_DocumentCompleted,騰訊網(wǎng)http://www.qq.com觸發(fā)了4次
【第二次】試驗(yàn)
public int i;//設(shè)置全局變量i
private void webBrowser1_DocumentCompleted(object sender, EventArgs e)
{
i++;//以便觀察這個(gè)事件被觸發(fā)了多少次
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26