抓取网页数据 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函数

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线