PhantomJS 与python的结合

待完善

 

一.简介

PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器 做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等, 同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如前端无界面自动化测试(需要结合 Jasmin)、网络监测、网页截屏等。

 

二.PhantomJS安装

  我的是win7系统,在下面的网站选择合适的版本安装

http://phantomjs.org/

  装好解压后,把文件夹bin中的phantomjs.exe移到python文件夹中的Scripts中,至此,就已经在Win的环境下配置好了环境。

三.小测试

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://hotel.qunar.com/")
data = driver.title
print data#输出
【去哪儿酒店】酒店预订, 酒店查询-去哪儿网Qunar.com

 

from selenium import webdriverdriver = webdriver.PhantomJS()
driver.get('http://hotel.qunar.com/city/beijing_city/dt-20438/?in_track=hotel_recom_beijing_city02')
data = driver.find_element_by_id("jd_comments").text
print data
driver.quit()#输出
整体评价
?
4.4分
我要点评
热门排序
时间排序
全部
好评
中评
差评
只看砖家点评
1

 

from selenium import webdriverdriver = webdriver.PhantomJS()
driver.get('http://hotel.qunar.com/city/beijing_city/dt-20438/?in_track=hotel_recom_beijing_city02')
data = driver.page_source
print data
driver.quit()

 

转载于:https://www.cnblogs.com/zzhzhao/p/5380376.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql对数据库的操作_MySQL数据库对数据库的操作

1.创建数据库mysqlgt; create database if not exists tongcheng; Query OK, 1 row affected (0.01 sec) mysqlgt; 2.查看创建数1.创建数据库mysql> create database if not exists tongcheng;Query OK, 1 row affected (0.01 sec)mysql>2.查看创建数据库时的选项mysql&g…

static用途

static关键字的用途 一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。 显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 static可以用来修饰类的…

硬件:宽带猫(光猫)的基础知识

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

筛法求素数

一般&#xff1a; #include<stdio.h> int main() { int a[100], i, j; for(i 2; i < 100; i) a[i] 1;//令2-99都为1 for(i 2; i < 100/2; i)//2 - 到 范围的一半的所有倍数 { if(a[i] 1)//还未被筛 素数不会被筛 合数会被筛 …

mysql实用管理器添加外键_MySQL 添加外键

MySQL 添加外键MySQL 添加外键DROP TABLE IF EXISTS nation;CREATE TABLE nation(pii_Nation smallint(2) unsigned NOT NULL default 0,pii_NatinoName varchar(40) NOT NULL default ,PRIMARY KEY (pii_Nation))ENGINEInnoDB DEFAULT CHARSETutf8;DROP TABLE IF EXISTS user…

Sentinel介绍和Windows下安装Sentinel-dashboard

Sentinel 是什么&#xff1f; 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景&#xff1a;Sentinel 承接…

盘点物联网常用的八种通信协议

目录 1、蓝牙 2、Zigbee 3、6LoWPAN 4、Wi-Fi 6、ModBus 7、PROFINET 8、EtherCAT 1、蓝牙 兼容的蓝牙IoT传感器非常适合需要短距离连接和低功率通信的应用。蓝牙协议的有效范围为50到100米&#xff0c;支持高达1 Mbps的数据传输速率。 最近&#xff0c;物联网开发人员已经表现…

java 发邮件_java实现邮件的发送

文章所用jar文件链接&#xff1a;https://pan.baidu.com/s/1YaxhdkaCTC4TUDL-y9-ASQ提取码&#xff1a;30ow程序入口&#xff0c;发送工具类package test;import org.apache.commons.mail.EmailException;/*** 邮箱发送工具类* author Administrator**/public class EmailUtil …

软件工程与程序算法

软件工程包括需求分析、概要设计、详细设计、代码实现和维护五个部分。而具体的程序编码只占其中的一小部分。算法是在代码设计中的基础&#xff0c;提供了解决问题的方法。软件工程是应用计算机科学、数学及管理科学等原理&#xff0c;开发软件的工程。软件工程借鉴传统工程的…

docker安装Sentinel

1:拉取镜像&#xff1a;docker pull bladex/sentinel-dashboard 2:启动 docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard 3&#xff1a;访问 http://公网ip:8858 4&#xff1a;登录,用户名和密码都是sentinel

蓝牙技术的工作原理及用途

所谓蓝牙技术就是一种全球无线通讯标准&#xff0c;在一定距离内连接设备。目前&#xff0c;蓝牙技术也已应用到各个领域中&#xff0c;并已成为接入物联网&#xff08;IOT&#xff09;的主要技术。那关于蓝牙技术的工作原理本文将进行介绍&#xff0c;并概括其特点。蓝牙技术的…

什么是BusyBox?

BusyBox 是标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具&#xff0c;例如 cat 和 echo&#xff0c;还包含了一些更大、更复杂的工具&#xff0c;例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀.简单的说BusyBox就好…

iOS十进制切割格式转换

//"123456789" 转换后 "123,456,789" interface NSString (num)- (NSString *)money;endimplementation NSString (num)- (NSString *)money{NSNumberFormatter *numFormat [[NSNumberFormatter alloc] init];[numFormat setNumberStyle:NSNumberFormatte…

同一接口有多个实现类,怎么来注入一个指定的实现?@Resource、@Autowired、@Qualifier

如果一个接口有2个以上不同的实现类, 那么如何Autowire一个指定的实现 1:首先,UserService接口有两个实现类 UserService1和 UserService2 UserService接口 2:以下是UserService接口的两个实现类UserService1和UserService2&#xff0c;请注意service注解的使用方式&#xff…

java类型比较_java 基本数据类型 ==和equals()比较

1.基本类型的存储Java 8种基本类型都是存储在堆栈中&#xff0c;例&#xff1a;int i 1;String str "hello world";也是存储在堆栈中。new基本类型的包装器类型和new String()都是存储在堆内存中。例Integer i new Integer(1);String str new String("hello…

嵌入式操作系统的主要特点都有哪些

嵌入式操作系统&#xff08;EOS&#xff09;是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件&#xff0c;通常包括与硬件的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式系统分为4层&#xff1a;硬件层、驱动层、…

UIWebView UITextView

// // ViewController.m // 网页 //#import "ViewController.h"interface ViewController ()<UITextFieldDelegate,UIWebViewDelegate> property (weak, nonatomic) IBOutlet UITextField *textFiled; property (weak, nonatomic) IBOutlet UIWebView *webVi…

BeanFactory和ApplicationContext有什么区别?

BeanFactory&#xff1a; 是Spring里面最底层的接口&#xff0c;提供了最简单的容器的功能&#xff0c;只提供了实例化对象和拿对象的功能 ApplicationContext&#xff1a; 应用上下文&#xff0c;继承BeanFactory接口&#xff0c;它是Spring的一各更高级的容器&#xff0c;提…

java的继承实例_Java继承和多态实例

我们知道面向对象的三大特性是封装、继承和多态。然而我们有时候总是搞不清楚这些概念。下面对这些概念进行整理&#xff0c;为以后面向抽象的编程打下坚实的基础。封装的概念还是很容易理解的。如果你会定义类&#xff0c;那么相信你对封装的概念已经完全掌握了。下面定义的几…

【数据库】13种会导致索引失效语句写法

数据库的索引是保证数据快速查询的重中之重&#xff0c;以下13种会导致索引失效语句会导致你的SQL查询索引失效&#xff0c;具体如下&#xff1a;1、使用like关键字模糊查询时&#xff0c;% 放在前面索引不起作用&#xff0c;只有“%”不在第一个位置&#xff0c;索引才会生效&…