您的位置:首页 > 新闻资讯 >文章内容
JavaScript渲染的网页,为什么使用IP代理也获取不了
来源:互联网 作者:admin 时间:2019-03-20 17:01:45

  JavaScript渲染的网页,为什么使用IP代理也获取不了?网站有静态页面,也有动态页面,这经过JavaScript渲染的网页,我们在抓取的时候并没有那么顺利,即使使用了代理IP来突破限制,也不行。那么怎么解决这个问题呢?


  说到这里,可能有些人马上就会想到,看下浏览器调试器的network视图,然后也发同样的http请求不就好了。


  遗憾的是,这个网站也不是省油的灯。它在服务端作了安全限制,只有网页自己发出的请求才能通过安全验证。


  我们需要爬取的数据是通过ajax请求得到,或者通过JavaScript生成的。


  首先用Firebug或者HttpFox对网络请求进行分析。如果能够找到ajax请求,也能分析出具体的参数和响应的具体含义,我们就能采用上面的方法,直接利用requests或者urllib2模拟ajax请求,对响应的json进行分析得到需要的数据。


  接下来我将介绍如何利用Webkit从JS渲染网页中获取数据。什么是Webkit呢?Webkit可以实现浏览器所能处理的任何事情。对于某些浏览器来说,Webkit就是其底层的网页渲染工具。Webkit是QT库的一部分,因此如果你已经安装QT和PyQT4库,那么你可以直接运行之。


  你可以利用命令行来安装该软件库:


  sudoapt-getinstallpython-qt4


  现在所有的准备工作已经完成,接下来我们将使用一个全新的方法来提取信息。


  解决方案


  我们首先通过Webkit发送请求信息,然后等待网页被完全加载后将其赋值到某个变量中。接下来我们利用lxml从HTML数据中提取出有效的信息。这个过程需要一点时间,不过你会惊奇地发现整个网页被完整地加载下来了。


JavaScript渲染的网页,为什么使用IP代理也获取不了


  类Render可以用来渲染网页,当我们新建一个Render类时,它可以将url中的所有信息加载下来并存到一个新的框架中。


JavaScript渲染的网页,为什么使用IP代理也获取不了


  利用以上的代码我们将HTML结果储存到变量result中,由于lxml无法直接处理该特殊的字符串数据,因此我们需要转换数据格式。


JavaScript渲染的网页,为什么使用IP代理也获取不了


  利用上述代码我们可以获得所有的档案链接信息,接下来我们可以利用这些Render和这些URL链接来提取文本内容信息。Webkit提供了一个强大的网页渲染工具,我们可以利用这个工具从JS渲染的网页中抓取出有效的信息。


  上介绍了关于如何从JS渲染的网页中抓取信息的方法,仅供参考的。如果网页中含有 JavaScript代码,我们必须经过渲染处理才能获得原始数据。此时,如果我们仍采用常规方法从中抓取数据,那么我们将一无所获。若是有其他的方法,大家也可以分享出来。


相关文章内容简介
推荐阅读
  • 25 2019-03
    当爬虫使用单ip和随机cookie无效时,采取什么措施突破限制?

    网站的IP限制以及cookie限制,是比较普遍的,不管去采集哪些网站的资料,都是需要考虑这两个问题,我们要想弄懂这些,首先要搞清楚网站设置的阈值,然后根据找到的范围进行调整爬虫速度

  • 27 2019-03
    爬走代理设置IP的方法有哪些?

    现如今很多网站在制作爬走代理时,一般都会用爬虫爬取想要的各种资料,尤其是使用计算机自动抓取,这就需要我们在使用服务器时有一个强度大、速度快的服务器,而通常我们所使用的网站

  • 29 2019-03
    有了IP代理池,高级爬虫就能轻易绕过反爬虫

    反爬虫作为网站的一道防线,自然是防线越严越好,越有难度,爬虫处理起来也没有那么简单。这仅仅是对于普通爬虫来说,如果是高级爬虫,这些常见的反爬虫措施并不见得那么有用的。

  • 09 2019-05
    代理IP使用无效谁的问题?

    代理IP使用无效谁的问题?虽说是很多事情使用代理IP之后,都能获得好的结果,但有时候使用代理IP出现无效的情况,这是怎么回事呢?

  • 15 2019-01
    Python爬虫怎么调用代理IP

    Python爬虫进行数据爬取的时候,首先要解决IP限制的问题,如果解决就无法快速的进行爬取,导致IP被封,无法工作,这时候就需要是代理IP,通过调用代理IP中的IP地址去突破目标网站的IP限制,

  • 09 2019-05
    爬虫代理可以加快数据的采集

    爬虫代理可以加快数据的采集,现在互联网形式的日益丰富和网络技术的不断提升,图片、数据库、音频/视频多媒体等不同数据大量出现,互联网变成了一个巨大的数据源,随着数据不断积累

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961