簡體   English   中英

使用C#閱讀隱藏的網站文本框?

[英]Reading hidden web site textboxes with C#?

首先,我幾乎仍然是一個初學者,尤其是在網絡方面。

我正在嘗試從使用Winforms應用程序在瀏覽器中打開的網頁中讀取文本框的內容,但是我無法修改網頁本身的源代碼。 可悲的是,我要查找的字符串不是簡單地寫在頁面的源代碼中。 因此,我不能只閱讀頁面源代碼並進行解析。 似乎文本框的內容是通過javascript填充的。

一般來說,我不確定從哪里開始。 任何建議都非常歡迎。

另外,我不確定應該在這里輸入哪些其他信息。 我不知道從哪里開始,所以我還沒有任何代碼可以顯示。

編輯:

我一直在嘗試使用敏捷包,但是我仍然不確定如何獲得所需的東西。 到目前為止,這是我的代碼:

WebClient client = new WebClient();
String html = client.DownloadString(URL);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@class='ember-view']"))
{
    HtmlAttribute div = link.Attributes["div"];
    if (div != null)
    {
                outputBox.Text += div.Value;
    }
}

運行代碼時,我得到以下信息:

發生類型'System.NullReferenceException'的未處理異常。 附加信息:對象引用未設置為對象的實例。

當我轉到網頁並檢查元素時,我得到了這一點(我只復制了幾行):

<html class="no-js" lang="en">

<head></head>
<body class="ember-application" lang="en-US" data-environment="production">
    <div id="booting" style="display: none;"></div>
    <div id="ember2493" class="ember-view">
        <div id="alert" class="ember-view"></div>

我不確定如何到達此行的內部代碼:

<div id="alert" class="ember-view"></div>

另外,如果這很明顯我很想念,我深表歉意,但是對我來說,這一切都是全新的。 感謝你目前的幫助。

您知道HTML Agility Pack嗎? 我總是使用敏捷包進行html爬網。

 HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"])
 {
    HtmlAttribute att = link["href"];
    att.Value = FixLink(att);
 }
 doc.Save("file.htm");

也許遵循以下思路可能有所幫助?

        var inputs = webBrowser1.Document.GetElementsByTagName("input");
        foreach (HtmlElement input in inputs)
        {
            var id = input.Id;
            var name = input.Name;
            var val = input.OuterHtml;  // can parse value from here
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM