Selenium3+Python3+PhantomJS配置及测试解析
来源:互联网 发布:iptv服务器软件 编辑:程序博客网 时间:2024/05/21 01:32
最近学习爬虫,遇到动态触发,异步加载,无法直接爬取数据,那么问题出现,解决的方法总是有的,需要用到两个工具:Selenium和PhantomJS。
下面介绍其基本概念和配置过程
概念
Selenium(浏览器自动化测试框架):是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本—–(来源百度百科https://baike.baidu.com/item/Selenium/18266)
PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如网络监测、网页截屏、无需浏览器的 Web 测试、页面访问自动化等。
安装环境及配置过程
Windows 10(64位)
Anaconda3(python 3.6.1)
1 使用pip安装Selenuim
pip install -U selenium,安装目录如图
2. 安装PhantomJS
将phantomjs/lib目录下的phantomjs.exe文件放到python的安装目录D:\Anaconda3
测试
#!/usr/bin/python# -*- coding: utf-8 -*-#date:2017-09-29__author__ = 'sunchengquan'__project__ = 'XXXXXX'__doc__ = 'XXXXXX'__mail__ ='1641562360@qq.com'from selenium import webdriver #导入python版的selenium(webdriver)import timefrom selenium.webdriver.common.desired_capabilities import DesiredCapabilities'''基于PhantomJS创建一个无界面浏览器,并且设置一下用户代理,否则可能出现界面不兼容的情况'''dcap = dict(DesiredCapabilities.PHANTOMJS)dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/4.0 (compatible; MSIE 5.5; windows NT)" )browser = webdriver.PhantomJS(desired_capabilities=dcap)'''我们通过PhantomJS打开相关动漫网页,将相关动漫图片地址触发出来'''browser.get('http://ac.qq.com/ComicView/index/id/539443/cid/1';)print(browser.title) #获取标题<title>《宛香》遇见(1)-在线漫画-腾讯动漫官方网站</title>print(browser.page_source) #打印当前网页所有源代码
测试结果成功 ,如图所示
- Selenium3+Python3+PhantomJS配置及测试解析
- Selenium3+Python3+Firefox56配置及测试解析
- Python3+phantomjs+selenium配置
- python3 + selenium3 web自动化测试环境搭建
- python3.5+selenium3.4自动化测试2_参数化
- python3.5+selenium3.4自动化测试5_frame中的对象
- python3.5+selenium3.4自动化测试8_selenium框架1.0
- 测试笔记第一天----python3.6+selenium3.5环境搭建
- python3+selenium3 环境搭建
- Python3+selenium3环境搭建
- python3+selenium3 如何开启Firefox50
- Python3.6+selenium3.3+Firefox52
- python3+selenium3+ie9初体验
- python3.5+selenium3.4自动化测试1_错误图片用时间命名保存
- python3.5+selenium3.4自动化测试3_下拉框循环选择
- python3.5+selenium3.4自动化测试4_随机组合的用户名和密码登陆
- 基于selenium3+python3.6.x+chrome57.x的自动化测试环境搭建
- python3.5+selenium3.4自动化测试6_selenium的Webdriver-API整理(上)
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- java版云笔记(九)之动态sql
- 校招准备系列:每天一道算法题(12)-从尾到头打印链表
- linux 系统管理命令
- java学习笔记--数组
- Selenium3+Python3+PhantomJS配置及测试解析
- 2-3 jdk安装
- jsp直接显示数据库表格信息
- TensorFlow 逻辑回归样例代码
- leetcode
- Gym-101490H Multiplying Digits(进制转化--倒着)
- Java 没有无符号数
- bzoj 2957: 楼房重建(分块)
- Andorid:Service启动的两种方式及区别