利用scrapy-splash爬取JS生成的动态页面
目前,为了加速页面的加载速度,页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无法获得。 解决方案: 利用第三方中间件来提供JS渲染服务: scrapy-splash 等。 利用webkit或者基于webkit库 Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python实现的,同时使用Twisted和QT。Twisted(QT)用来让服务具有异步处理能力,以发挥webkit的并发能力。 下面就来讲一下如何使用scrapy-splash: 利用pip安装scrapy-splash库: $ pip install scrapy-splash scrapy-splash使用的是Splash HTTP API, 所以需要一个splash instance,一般采用docker运行splash,所以需要安装 docker 。 安装 docker , 安装好后运行docker。 拉取镜像(pull the image): $ docker pull scrapinghub/splash 用docker运行scrapinghub/splash: $ docker run -p 8050:8050