您的位置:首页 > 新闻资讯 >文章内容
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代码,我们必须经过渲染处理才能获得原始数据。此时,如果我们仍采用常规方法从中抓取数据,那么我们将一无所获。若是有其他的方法,大家也可以分享出来。


相关文章内容简介
推荐阅读
  • 13 2019-05
    代理IP的作用和分类

    代理IP的作用和分类,知道的人有多少?尽管代理IP的使用非常广泛,并且使用它的人数在增加,但仍有许多新手不了解代理IP的作用,有哪些类型?我们今天讨论代理IP的分类。

  • 02 2019-10
    代理IP分享:什么是MapReduce?

    使用代理IP进行爬虫数据挖掘,这些被我们采集回来的数据又该怎么处理呢?如果没有合适的去对它们进行处理分析,那可就白白浪费了爬虫的努力了。今天机灵代理带来一种大批量进行数据处理

  • 04 2020-02
    代理IP是爬虫中必不可少的

    我们在爬虫的时候,经常会出现爬虫正常运行,也在正常抓取数据,但可能下一秒就出现错误。这时候如果再打开网页查看,可能就会出现IP访问频繁的提示。出现这种情况,就是网站采取了反

  • 20 2019-06
    代理IP可以更换IP地址突破网络限制

    代理IP可以更换IP地址突破网络限制,很多人使用代理IP,主要是这一点,即更换IP地址突破网络限制。如果有了代理IP,我们可以不必担心店铺刷单太多而造成被封的危险,网站发帖太多而导致IP

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

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

  • 30 2019-09
    代理IP的API接口是什么意思?

    做过爬虫项目的,相比都对代理IP比较熟悉了。但是不知道大家是否清楚代理IP中的API接口是什么意思,为什么说用这个接口能够帮助我们提高爬虫的工作效率?下面我们一起来分析一下。

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部