[英]reading data off website in C#
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
try
{
HtmlDocument doc = logger.Document;
HtmlElement username = doc.GetElementById("loginUsername");
HtmlElement password = doc.GetElementById("loginPassword");
HtmlElement submit = doc.GetElementById("loginSubmit");
username.SetAttribute("value", "myusername");
password.SetAttribute("value", "mypassword");
submit.InvokeMember("click");
}
catch
{
}
}
您好,我正在嘗試制作一個程序來登錄到網站,並閱讀一些文本以顯示給用戶。 到目前為止,使用上面的代碼,我已經使Web瀏覽器自動登錄。
登錄后在頁面上,
我希望程序單擊“時間表”元素。 但是它沒有自己的ID。 我如何獲得它?
這甚至是正確的方法嗎? 我如何在這里實現我想要的? 我自己做不到,所以我把這個問題放在這里!
您無需單擊按鈕,因為有了URL。 您可以直接調用URL並讀取已返回的代碼:
var req = (HttpWebRequest)WebRequest.Create(URL);
req.Method = "GET";
var resp = req.GetResponse();
using(var sr = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8))
{
string result = sr.ReadToEnd();
}
myResponse.Close();
如果使用Fiddler之類的工具,則可以看到返回的數據。
它在這里。 只是一些foreach代碼。
bool login = false;
bool nav = false;
bool beware = true;
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
try
{
HtmlDocument doc = webBrowser1.Document;
if (login && !nav)
{
HtmlElement timetable = null;
foreach (HtmlElement link in doc.GetElementsByTagName("li"))
{
Console.WriteLine(link.InnerText);
if (beware)
{
timetable = link; //Avoiding NullExceptions
}
if (link.InnerText.Contains("Timetablelol"))
{
timetable = link; //Set the Timetable var.
beware = false; //Keep Timetable the kept element.
}
}
timetable.InvokeMember("click"); //Clicking on timetable link.
nav = true;
}
if (!login && !nav)
{
HtmlElement username = doc.GetElementById("loginUsername");
HtmlElement password = doc.GetElementById("loginPassword");
HtmlElement submit = doc.GetElementById("loginSubmit");
username.SetAttribute("value", "myusername");
password.SetAttribute("value", "mypassword");
submit.InvokeMember("click");
login = true;
}
}
catch
{
Console.WriteLine("Didn't work");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.