scrapy分页抓取网页(使用WebBroser控件可以实现你在IE中操作网页的任何功能)

优采云 发布时间: 2021-11-21 06:02

  scrapy分页抓取网页(使用WebBroser控件可以实现你在IE中操作网页的任何功能)

  前两天写了一篇关于网页分页数据抓取的帖子,但是只提到了两种方法。因为那个时候打原创的帖子真的很辛苦,所以没有写第三种方法。今天,我将使用第三种方法。方法也贴出来分享给大家;

  如上一篇所述,第三种方法是使用代码模拟手动翻页。这种方法应该能够处理任何形式的翻页数据。原理是用代码模拟人工翻页链接,用代码模拟人工翻页链接。翻页,然后逐页抓取。

  所谓门外汉看热闹,高手看门道,可能很多人看到这里就说可以通过Webbrowser的控制来实现,是的,我下面的方式就是通过控制来实现WebBrowser,其实在.net下应该有这种类似的分类,不过我没研究过,希望有人有其他方法可以回复我,分享给大家。

  WebBroser控件在自己的程序中嵌入了浏览器,就像IE、Firefox等一样,你也可以用它来开发自己的浏览器。至于用它开发的浏览器的效果,我觉得肯定不如IE和Firefox。哈哈

  我们还是八卦少说,切入主题:

  基本上,你可以使用WebBroser控件来实现IE中任何操作网页的功能,当然点击翻页按钮也是可以的。既然您可以手动点击WebBroser中的翻页按钮,自然我们也可以使用程序代码来指示WebBroser自动为我们翻页。

  其实原理很简单,主要分为以下几个步骤:

  第一步,打开你要爬取的页面,比如:

  调用webBrowser控件Navigate("")的方法;

  此时,您应该在您的WebBrowser 控件中看到您的网页信息,这与在IE 中看到的相同;

  第二步,WebBrowser控件的这个事件DocumentCompleted很重要。当您访问的所有页面都加载完毕时,将触发此事件。所以我们分析页面元素的过程也需要在这个事件中完成

  字符串 _ResponseStr=this.WebBrowser1.Document.Body.OuterHtml;

  这段代码可以获取当前打开页面的html元素的内容。

  既然获取到了当前打开的页面的html元素的内容,接下来的工作自然就是解析这个大字符串,得到自己关心的内容,以及解析字符串的过程,大家应该可以自己写。

  第三步,重点在这第三步,因为要翻页,继续第二步,解析字符串后,或者在DocumentCompleted事件中,调用方法

  WebBrowser1.Document.GetElementById("page id").InvokeMember("click");

  从代码的方法名大家应该就可以理解了,那么调用这个方法后,WebBrwoser控件中的网页就实现了翻页,和手动点击翻页按钮的效果是一样的。

  重点是翻页后会触发DocumentCompleted事件,所以第二步和第三步都在循环中,所以大家需要注意跳出循环的时机。

  它实用的WebBrowser还可以做很多事情,比如自动登录,退出论坛,保存会话,cockie,所以这个控件基本上可以实现你想要在网页上的任何操作,即使你想破解一个网站以营利为目的的登录密码,当然不推荐这种。哈哈

  这里我要告诉大家,上面的地址是我自己的网站。由于所谓的窃取也是如此,请不要使用这种技术来捕获我的数据。主要原因是我的服务器承受不了太大的压力。

  另外,我在我的网站上增加了一个站长随笔的小功能,我会定期在我的网站上发布一些我自己的经验。如果你有兴趣,你可以去看看。

  这篇关于分页抓取数据的帖子,即使是我的第一篇文章,我也整理了这两篇帖子放在我的网站上。

  有兴趣的可以去看看

  同时我还用delphi写了一个*敏*感*词*的优采云时刻表查询小程序。纯绿色软件,不需要联网,不需要安装,不需要数据库,60万小程序,直接运行,占用内存小

  有兴趣的可以下载。非常适合出差不便上网的人使用。

  如果需要抓数据可以联系我

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线