如何解决选择分页后无法从cefsharp浏览器获取HTML
- 我使用 cefsharp 加载了一个页面,该页面在页面中提供了 25 个链接。
- 使用
FrameLoadEnd
将 HTML 内容放入 HtmlAgilityPack 文档中。 - 从节点获得了 25 个链接的标题。 问题 当我点击页面上的 50 个链接并尝试获取标题时,它仍然给了我 25 个链接。这是旧页面。我不明白为什么 FrameLoadEnd 在导航到页面内的另一个链接时无法更改 html。
当我点击 50 个标题时,我无法获得 50 个标题的 html 内容
这里是代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CefSharp;
using CefSharp.WinForms;
using System.Windows.Forms;
using HtmlAgilityPack;
namespace Hummingbird_HAP_E_Scraper
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender,EventArgs e)
{
chromiumWebbrowser1.Load("https://www.sciencedirect.com/search?qs=nursing");
}
string html;
private void ChromiumWebbrowser1_FrameLoadEnd(object sender,CefSharp.FrameLoadEndEventArgs e)
{
BeginInvoke((Action)(async () =>
{
html = await chromiumWebbrowser1.GetSourceAsync();
}));
}
HtmlAgilityPack.HtmlDocument xdoc = new HtmlAgilityPack.HtmlDocument();
private void Button1_Click(object sender,EventArgs e)
{
xdoc.LoadHtml(html);
System.Threading.Thread.Sleep(5000);
HtmlNodeCollection links;
links = xdoc.DocumentNode.SelectNodes("//h2/span/a");
if (links == null)
return;
foreach (HtmlNode link in links)
{
listBox1.Items.Add(link.InnerText);
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。