抓取网页数据 php(【每日一题】网页数据的问题(使用HtmlAgilityPack、WebBrowser))
优采云 发布时间: 2021-09-18 17:07抓取网页数据 php(【每日一题】网页数据的问题(使用HtmlAgilityPack、WebBrowser))
询问您有关捕获网页数据的问题(使用htmlagility pack和WebBrowser)
获取页面的部分数据。当使用Htmlagibility pack解析第一个页面时,结果是正常的
问题:1、运行后,documentcompleted事件似乎只触发一次,最后在第二页停止
2、无法获取新页面的documenttext,只能重复获取第一页的数据
请询问解决方案,谢谢
测试网址:
测试代码如下所示:
<br />
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)<br />
{<br />
WebBrowser targetWeb = sender as WebBrowser;<br />
if (targetWeb.ReadyState == WebBrowserReadyState.Complete)<br />
{<br />
HtmlAgilityPack.HtmlDocument hapHtmlDoc = new HtmlAgilityPack.HtmlDocument();<br />
hapHtmlDoc.LoadHtml(targetWeb.DocumentText);<br />
HtmlNodeCollection targetNodeList = hapHtmlDoc.DocumentNode.SelectNodes("//td[@class='f005'][1]");//获取日期<br />
<br />
foreach (HtmlNode test in targetNodeList)<br />
System.Diagnostics.Debug.WriteLine(test.InnerHtml);//测试内容<br />
<br />
System.Windows.Forms.HtmlDocument winHtmlDoc = targetWeb.Document;<br />
foreach (HtmlElement item in winHtmlDoc.GetElementsByTagName("a"))<br />
{<br />
if (item.OuterText == "下一页")<br />
{<br />
item.InvokeMember("click");<br />
break;<br />
}<br />
}<br />
}<br />
}<br />
------解决思路----------------------
似乎只有Java对使用Ajax加载的页*敏*感*词*有DLL支持,而且似乎没有相应的net版本
------解决思路----------------------
这与已完成的文档无关。人们根本不刷新页面
您需要插入JavaScript代码,创建一个新的JavaScript对象来保存旧的getajaxdata函数,然后用新的getajaxdata函数替换旧的getajaxdata函数。应在新的getajaxdata函数内调用旧的getajaxdata函数