日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

用C#抓取AJAX页面的内容

發布時間:2023/12/18 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用C#抓取AJAX页面的内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用C#抓取AJAX頁面的內容[轉]

現在的網頁有相當一部分是采用了AJAX技術,不管是采用C#中的WebClient還是HttpRequest都得不到正確的結果,因為這些腳本是在服務器發送完畢后才執行的!

但我們用IE瀏覽頁面時是正常的,所以解決方法只有1個就是采用WebBrowser控件

但是使用Webbrowser你會發現,在DownloadComplete事件中,你根本無法知道頁面何時才算是真正的加載完畢!
當然個別有Frame的網頁可能會觸發多次Complete,即使你采用計數器的辦法,即在Navigated事件中++,而在DownloadComplete中做--,也仍然不能得到JS完成執行后的結果,我開始也感覺到非常奇怪,直到后來GG了相關AJAX的文章,明白了其中原委.

最終解決方案就是利用WebBrowser+Timer來解決抓取頁面的問題
而其中的關鍵仍然是頁面狀態,我們可以利用webBrowser1.StatusText,如果返回"完成",表示頁面加載完畢!


示例代碼如下:?


private?void?timer1_Tick(object?sender,?EventArgs?e)
????????{?????????
???????????
?????????????textBox1.Text?
+=?webBrowser1.StatusText;?????
????????????
if?(webBrowser1.StatusText?==?"完成")
????????????{
???????????????
????????????????timer1.Enabled?
=?false;
????????????????
//頁面加載完成,做一些其它的事
????????????????textBox1.Text?+=?webBrowser1.Document.Body.OuterHtml;?
????????????????
//webBrowser1.DocumentText?注意不要用這個,這個和查看源文件一樣的
????????????}
????????}??????
????????
private?void?Form1_Load(object?sender,?EventArgs?e)
????????{
????????????
string?Url?=?"http://cd.mei8.cn/face/work/windex.aspx?btn=6";
????????????webBrowser1.Navigate(Url);
????????}
????????
放三個控件,webBrowser,timer,textBox
timer設置為可用

轉載于:https://www.cnblogs.com/ike_li/archive/2009/07/29/1533780.html

總結

以上是生活随笔為你收集整理的用C#抓取AJAX页面的内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。