gpt4 book ai didi

c# - 如何使用 webclient 读取通过 ajax 生成的内容?

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:08 26 4
gpt4 key购买 nike

我正在使用 WebClient 下载网站

public void download()
{
client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.Encoding = Encoding.UTF8;
client.DownloadStringAsync(new Uri(eUrl.Text));
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
if (sd.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(sd.FileName,false,Encoding.Unicode);
writer.Write(e.Result);
writer.Close();
}
}

这很好用。但是我无法读取使用 ajax 加载的内容。像这样:

<div class="center-box-body" id="boxnews" style="width:768px;height:1167px; ">
loading .... </div>

<script language="javascript">
ajax_function('boxnews',"ajax/category/personal_notes/",'');
</script>

这个“ajax_function”在客户端从服务器下载数据。

如何下​​载完整的 web html 数据?

最佳答案

为此,您需要在成熟的网络浏览器中托管 Javascript 运行时。遗憾的是,WebClient 无法执行此操作。

您唯一的选择是 WebBrowser 控件的自动化。您需要将其发送到 URL,等待主页面加载任何 AJAX 内容(包括在需要用户操作时触发加载),然后抓取整个 DOM .

如果您只是抓取特定网站,您最好自己拉取 AJAX URL(模拟所有必需的参数),而不是拉取需要它的网页。

关于c# - 如何使用 webclient 读取通过 ajax 生成的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368350/

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