从网页抓取数据的一般方法
生活随笔
收集整理的這篇文章主要介紹了
从网页抓取数据的一般方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先要了解對方網頁的運行機制,這可以用httpwacth或者httplook來看一下http發送和接收的數據。這兩個工具應該說是比較簡單易懂的。這里就不再介紹了。主要關注的內容是header和post的內容。一般會包括cookie,Referer頁面和其他一些亂其八糟可能看不懂的變量,還有就是正常交互的參數,比如需要post或者get的querystring所包含的東西。
httplook和httpwacth網上有很多下載的,這里推薦使用httpwach,因為可以直接嵌入到ie中,個人覺得這個比較好用。這兩個工具可以到我上傳在csdn的資源中下載,地址為
http://download.csdn.net/user/jinjazz
這里簡單給出一段可以抓取數據的c#代碼,比如登錄某個網站,獲取登錄成功后的html代碼,供數據分析使用。
private void login()
{
System.Net.WebClient wb = new System.Net.WebClient();
System.Collections.Specialized.NameValueCollection header = new System.Collections.Specialized.NameValueCollection();
header.Add( " Cookie " , " czJ_cookietime=2592000; czJ_onlineusernum=1651; czJ_sid=w4bGJd " );
header.Add( " Referer " , @" http://hovertree.net/bbs/login.php " );
wb.Headers.Add(header);
System.Collections.Specialized.NameValueCollection data = new System.Collections.Specialized.NameValueCollection();
data.Add( " formhash " , " ebd2faac " );
data.Add( " referer " , " http://hovertree.net/bbs/search.php " );
data.Add( " loginfield " , " username " );
data.Add( " username " , " jinjazz " );
data.Add( " password " , " 999 " );
data.Add( " questionid " , " 0 " );
data.Add( " answer " , "" );
data.Add( " cookietime " , " 2592000 " );
data.Add( " loginmode " , "" );
data.Add( " styleid " , "" );
data.Add( " loginsubmit " , " 提交 " );
byte [] b = wb.UploadValues( " http://hovertree.net/bbs/login.php " , " Post " , data);
string strData = System.Text.Encoding.Default.GetString(b);
Console.WriteLine(strData);
}
以上代碼除了三個url之外其他數據都是真實的,其中header和data中的參數和值都是用httpwatch來監測后得到。
總結
以上是生活随笔為你收集整理的从网页抓取数据的一般方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: element UI 制作模糊搜索框
- 下一篇: activiti并发多实例子流程任务处理