c# - 使用 C# 读取隐藏网站文本框?

标签 c# javascript web

首先,我仍然是一个初学者,尤其是在网络方面。

我正在尝试从使用 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”类型的未处理异常。 附加信息:未将对象引用设置为对象的实例。

当我进入网页并执行 Inspect Element 时,我得到了这个(我只复制了几行):

<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 ?我总是使用 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");

关于c# - 使用 C# 读取隐藏网站文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22161041/

相关文章:

c# - Monocross 的现状 - 2013 年 7 月

javascript - 隐藏元素但仍有位置

css - 将 CSS ID 转换为所有属性

c# - 从 Linq 中的 Select 查询中查找索引

c# - Linq to SQL .Sum() 没有组...进入

javascript - 在 nowjs 中运行不同的实例

java - 在服务器端查询http请求的困境

javascript - 如何使此联系​​表起作用?

c# - c# 中的转换错误抛出异常输入字符串格式无效

javascript - 动态添加元素到 DOM 后如何为元素添加属性