gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:28:17 24 4
gpt4 key购买 nike

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

我正在尝试从使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com