引入
今日概要css
- 图片懒加载
- selenium
- phantomJs
- 谷歌无头浏览器
知识点回顾html
- 验证码处理流程
今日详情python
动态数据加载处理web
一.图片懒加载chrome
- 什么是图片懒加载?
- 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据
-
- 运行结果观察发现,咱们能够获取图片的名称,可是连接获取的为空,检查后发现xpath表达式也没有问题,究其缘由出在了哪里呢?windows
-
图片懒加载概念:后端
-
图片懒加载是一种网页优化技术。图片做为一种网络资源,在被请求时也与普通静态资源同样,将占用网络资源,而一次性将整个页面的全部图片加载完,将大大增长页面的首屏加载时间。为了解决这种问题,经过先后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减小首屏图片请求数的技术就被称为“图片懒加载”。api
-
-
网站通常如何实现图片懒加载技术呢?浏览器
-
在网页源码中,在img标签中首先会使用一个“伪属性”(一般使用src2,original......)去存放真正的图片连接而并不是是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。网络
-
-
站长素材案例后续分析:经过细致观察页面的结构后发现,网页中图片的连接是存储在了src2这个伪属性中
二.selenium
- 什么是selenium?
-
是Python的一个第三方库,对外提供的接口能够操做浏览器,而后让浏览器完成自动化的操做。
-
-
环境搭建
-
安装selenum:pip install selenium
-
获取某一款浏览器的驱动程序(以谷歌浏览器为例)
-
谷歌浏览器驱动下载地址:
http://chromedriver.storage.googleapis.com/index.html
-
下载的驱动程序必须和浏览器的版本统一,你们能够根据
http://blog.csdn.net/huilan_same/article/details/51896672中提供的版本映射表进行对应
-
-
效果展现:
代码介绍:
三.phantomJs
- PhantomJS是一款无界面的浏览器,其自动化操做流程和上述操做谷歌浏览器是一致的。因为是无界面的,为了可以展现自动化操做流程,PhantomJS为用户提供了一个截屏的功能,使用save_screenshot函数实现。
- 代码演示:
-
重点:selenium+phantomjs 就是爬虫终极解决方案:有些网站上的内容信息是经过动态加载js造成的,因此使用普通爬虫程序没法回去动态加载的js内容。例如豆瓣电影中的电影信息是经过下拉操做动态加载更多的电影信息。
-
综合操做:需求是尽量多的爬取豆瓣网中的电影信息
-
四.谷歌无头浏览器
- 因为PhantomJs最近已经中止了更新和维护,因此推荐你们能够使用谷歌的无头浏览器,是一款无界面的谷歌浏览器。
- 代码展现: