[英]How to scrape text from an html page using C#?
我有一個網頁,當導航到該網頁時,它僅返回一個簡單的文本值,例如數字100。我需要從頁面中獲取該值,因此可以在應用程序中使用它。 該應用程序是一個簡單的Windows Forms應用程序,上面帶有Web瀏覽器控件。
我已經嘗試了很多事情,但是它沒有抓住文本,好像它不存在一樣。 但是,如果我右鍵單擊並查看源,就可以找到它。
這不是那么困難...只是一些文字。
只是為了澄清文檔中不包含html,只有一個數字。 使用WebClient或WebRequest時,它不返回該值。
private void RegisterWindow_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("MYURL");
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// Check and see if we have navigated to the final page.
string registeredUrl = "MYURL";
string currentPage = webBrowser1.Url.ToString();
string response = string.Empty;
if (webBrowser1.Url.ToString() == registeredUrl)
{
// Now parse the authkey from the url
response = GetWebRequest(currentPage);
MessageBox.Show(response);
}
}
/// <summary>
/// Send a Web Request and get a Web Response back.
/// This respons can be a valid URL, simple text response, or
/// HTML response.
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string GetWebRequest(string url)
{
var client = new WebClient();
var content = client.DownloadString(url);
return content;
}
您應該能夠做一些簡單的事情:
var client = new WebClient();
var content = client.DownloadString("<YOUR URL>");
var number = Int32.Parse(content);
如果文檔僅包含沒有任何HTML的數字,則該方法應該起作用:
public string GetWebRequest()
{
return webBrowser1.Document.Body.InnerText;
}
幾年前,我在.NET中寫了一篇有關Web抓取的博客文章。 您可以在那里嘗試這些技術。 希望它們不會過時。
例如:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.UserAgent = _UserAgent;
request.CookieContainer = cookies; // optional
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
html = reader.ReadToEnd();
}
}
}
請記住,您的瀏覽器正在發送User-Agent標頭,可能正在發送cookie,可能正在通過已配置的代理服務器等。特別是對於受保護的站點或Intranet站點,簡單的WebClient調用可能不足。 您可能需要按照@SLaks的建議對Fiddler進行一些檢查。
您可以將頁面HTML / TXT內容加載到字符串,然后使用字符串函數提取數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.