前言:
今天为大家带来的内容是详解:用(Selenium+PhantomJS)python简单实现爬虫的功能,希望大家会喜欢,文中示例代码介绍的颇为详细,具有不错的参考意义!
提示:开始之前,会给大家详细的介绍Selenium+PhantomJS 的安装步骤!
Selenium
一、简介
selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样
selenium2支持通过驱动真实浏览器(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)
selenium2支持通过驱动无界面浏览器(HtmlUnit,PhantomJs)
二、安装
Windows
![12192974-32caf009af7a92a7](https://i-blog.csdnimg.cn/blog_migrate/e256debd4216e51b8fc542790fd2375d.jpeg)
第二种方法是:可以直接在C:\Python27\Scripts 下输入命令安装 pip install -U selenium
sudo pip install selenium
</pre>
PhantomJS
一、简介
PhantomJS 是一个基于 WebKit(WebKit是一个开源的浏览器引擎,Chrome,Safari就是用的这个浏览器引擎) 的服务器端 JavaScript API,主要应用场景是:无需浏览器的 Web 测试,页面访问自动化,屏幕捕获,网络监控
二、安装
Windows
![12192974-3f7521fbfcbd69ee](https://i-blog.csdnimg.cn/blog_migrate/1ee5473a452f44ed95da2ab95485b880.jpeg)
Linux
sudo apt-get install PhantomJS
</pre>
![12192974-fd8a328bdac58352](https://i-blog.csdnimg.cn/blog_migrate/6dbf6fa6805f97bb45315a131c19b884.jpeg)
![12192974-c99284cf1cd1911a](https://i-blog.csdnimg.cn/blog_migrate/e02f8bd5d6e3a0d5395d10faf804e472.jpeg)
一、超时设置
webdriver类中有三个和时间相关的方法:
1.pageLoadTimeout 设置页面完全加载的超时时间,完全加载即完全渲染完成,同步和异步脚本都执行完
2.setScriptTimeout 设置异步脚本的超时时间
3.implicitlyWait 识别对象的智能等待时间
下面我们以获取校花网title为例来验证效果,因为校花网中图片比较多,所以加载的时间比较长,更能时间我们的效果(另一原因我就不说了,这样才能让我们学起来带劲,哈哈!!!)
![12192974-72e48d2c3b1e885a](https://i-blog.csdnimg.cn/blog_migrate/ac1791da99d655a158b3ea1f5647c9c8.jpeg)
二、元素的定位
对象的定位是通过属性定位来实现的,这种属性就像人的身份证信息一样,或是其他的一些信息来找到这个对象,那我们下面就介绍下Webdriver提供的几个常用的定位方法
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
</pre>
上面这个是百度的输入框,我们可以发现我们可以用id来定位这个标签,然后就可以进行后面的操作了
![12192974-dc804a116e75b934](https://i-blog.csdnimg.cn/blog_migrate/6085c51801fdb99012abb867dc673d60.jpeg)
三、浏览器的操作
1、调用启动的浏览器不是全屏的,有时候会影响我们的某些操作,所以我们可以设置全屏
![12192974-fe56374c3c8fdd86](https://i-blog.csdnimg.cn/blog_migrate/ea6188a0e6f0f6542c2770c331226c41.jpeg)
2、设置浏览器宽、高
![12192974-6fd76c113cebe6ae](https://i-blog.csdnimg.cn/blog_migrate/b3aa163bc5a32df89f59b97011d4f9d9.jpeg)
3、操作浏览器前进、后退
![12192974-0f58bc4dd4606f2f](https://i-blog.csdnimg.cn/blog_migrate/2f4dfcff0440443761924abce13b0929.jpeg)
四、操作测试对象
定位到元素以后,我们就应该对相应的对象进行某些操作,以达到我们某些特定的目的,那我们下面就介绍下Webdriver提供的几个常用的操作方法
![12192974-9bb0bee0f5aa6f9c](https://i-blog.csdnimg.cn/blog_migrate/3407e19480662a4727b23551a8f8c22b.jpeg)
print e
</pre>
五、键盘事件
1、键盘按键用法
![12192974-fff9ed32aad1e9be](https://i-blog.csdnimg.cn/blog_migrate/b99bbac5a5e799295def8ecabf663ace.jpeg)
2、键盘组合键使用
![12192974-ee33c5ee776a3563](https://i-blog.csdnimg.cn/blog_migrate/bf0fb9aa2b38bb0183382a9adfbccfb4.jpeg)
六、中文乱码问题
selenium2 在python的send_keys()中输入中文会报错,其实在中文前面加一个u变成unicode就能搞定了
七、鼠标事件
1、鼠标右击
![12192974-c5f6733603d706c9](https://i-blog.csdnimg.cn/blog_migrate/70068a13c8e1c9351a8705d714d129ac.jpeg)
2、鼠标双击
![12192974-79b8ec2574e023bb](https://i-blog.csdnimg.cn/blog_migrate/7dd5b6f8c921bd925bac0441e623cd91.jpeg)
以上就是本文的全部内容啦!
python交流群:877562786(群里含大量学习资料,面试宝典等)