网页源代码抓取工具(之前做项目要从一个网页中抓取某些特定信息(组图))

优采云 发布时间: 2022-01-10 14:20

  网页源代码抓取工具(之前做项目要从一个网页中抓取某些特定信息(组图))

  首页>博客文章WebBrowser + HtmlPraser 抓取ajax网页源码

  

  与py2021-11-12

  简介 在我做一个项目之前,我想从一个网页中获取一些特定的信息。一开始我打算用java+HtmlPraser制作的结果。被抓的部分出不来。在研究了那个网页的源代码之后,我得出了一个结论。它是使用ajax技术隐藏一些信息的网页。只有当用户浏览页面时,才会显示这部分信息。然后想看看有没有一些可以模拟浏览的开源项目,但是找不到。无奈之下,只好切换到c#平台。经过高手指导,c#中的WebBrows" />

  在做一个项目之前,我想从网页中获取一些特定的信息。一开始我打算用java+HtmlPraser来做结果。被抓的部分出不来。在研究了那个网页的源代码后,我得出的结论是,那个网页使用了ajax技术隐藏了部分信息。只有当用户浏览页面时,才会显示这部分信息。然后想看看有没有一些可以模拟浏览的开源项目,但是找不到。无奈之下,只好切换到c#平台。

  经过专家指导,c#中的WebBrowser控件起到了模拟浏览器的作用,使用起来非常简单。

  新建一个表单应用程序,在表单中添加一个WebBrowser控件,在控件的属性url中设置要解析的网页的url。必须填写

  然后双击控件你会去一个

   private void web_DocumentCompleted(object sender,WebBrowserDocumentCompletedEventArgs e)

  看函数分析就知道这个函数是在控件加载完网页后执行的

  也就是说,您需要在该函数中写入有关网页的信息。

  一开始我也是直接在这个函数里写处理代码,但是发现信息被抓到但是只有一小部分

  后来百度发现是因为这个控件其实设计的有一些不足。很多时候,收录动态加载的网页还没有完全打开。

  web_DocumentCompleted()函数会开始执行,导致控件显示的页面源码与实际页面源码不一致

  有一些解决方案,虽然没有完全解决,但是可以提高打开类ajax网页的完成度。

  方法是

  private void web_DocumentCompleted(object sender,WebBrowserDocumentCompletedEventArgs e)

{

if (web0.ReadyState == WebBrowserReadyState.Complete)

{

}

}

  原理不是很清楚,但实验证明抓取目标数据量确实增加了。

  所以如果你想捕获更多的数据,你可以使用定时器每隔一段时间解析网页,以增加捕获的数据量。

  简单来说就是控制定时器和WebBrowser的Navigate方法的结合。

  总结

  以上就是WebBrowser+HtmlPraser为你爬取本站采集的ajax网页源码的全部内容。希望文章可以帮助大家解决WebBrowser+HtmlPraser爬取ajax网页源码时遇到的程序开发问题。

  如果你觉得本站网站的内容还不错,欢迎向程序员朋友推荐本站网站。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线