在Python中用Selenium执行JavaScript
Selenium自己不带浏览器, 需要与第三方浏览器结合在一起使用.例如在Firefox上运行Selenium.
PhantomJS是一个"无头"浏览器. 它会把网站加载到内存并执行页面上的JavaScript, 但是它不会向用户展示网页的图形界面. 把Selenium和PhantomJS结合在一起, 就可以运行一个非常强大的网络爬虫了, 可以处理cookie, JavaScript,header, 以及任何你需要做的事.
Selenium可以从PyPI网站(https://pypi.python.org/simple/selenium)下载Selenium库, 也可以用pip安装.
PhantomJS可以从官网下载(http://phantomjs.org/download.html) , PhantomJS不是一个Python库,不能用pip安装.
from selenium import webdriver
import time driver = webdriver.PhantomJS(executable_path=' ')
driver.get("http://pythonscraping.com/pages/javascript/ajaxDemo.html")
time.sleep(3)
print(driver.find_element_by_id('content').text)
driver.close()
executable_path变量值为phantomjs.exe的路径. 如: executable_path = '/download/phantomjs-2.1.1-windows/bin/phantomjs'
selenium的选择器都是用了非常直截了当的名称, 上面的例子, 也可以用如下的选择器:
driver.find_element_by_css_selector("#content")
driver.find_element_by_tag_name("div")
另外, 如果你还是想用BeautifulSoup来解析网页内容, 可以用WebDriver的page_source函数返回页面的源代码字符串.
pageSouce = driver.page_source
bsObj = BeautifulSoup(pageSource)
print(bsObj.find(id="content").get_text())
在Python中用Selenium执行JavaScript的更多相关文章
- Selenium执行JavaScript脚本
JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在We ...
- selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项
1. 执行js脚本 控制滚动条 # http://www.cnblogs.com/yoyoketang/p/6128655.html In [347]: js = "window.scrol ...
- python中用selenium调Firefox报错问题
python在用selenium调Firefox时报错: Traceback (most recent call last): File "G:\python_work\chapter11 ...
- Selenium 执行JavaScript
Selenium 可以直接模拟运行 JavaScript,使用 execute_script() 方法即可实现 from selenium import webdriver browser = web ...
- 7.解决在python中用selenium启动FireFox浏览器启动不了的方法
首次在利用python中的selenium启动FireFox浏览器时可能碰到如下问题 当输入如下代码时: from selenium import webdriver brower=webdriver ...
- Python_selenium之执行JavaScript
Python_selenium之执行JavaScript 一.简略的介绍selenium执行JavaScript 1. Example 1进入浏览器之后,弹出一个alert弹框 #coding:utf ...
- Selenium_使用execute_script执行JavaScript(11)
selenium的包含的方法已能完全满足UI自动化,但是有些时候又不得不用到执行JS的情况,比如在一个富文本框中输入1W个字,使用send_keys方法将经历漫长的输入过程,如果换成使用JS的inne ...
- Python爬虫(二十四)_selenium案例:执行javascript脚本
本章叫介绍如何使用selenium在浏览器中使用js脚本,更多内容请参考:Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句 fr ...
- python中执行javascript代码
python中执行javascript代码: 1.安装相应的库,我使用的是PyV8 2.import PyV8 ctxt = PyV8.JSContext() ctxt.enter() ...
随机推荐
- (线性dp 最大子段和 最大子矩阵和)POJ1050 To the Max
To the Max Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 54338 Accepted: 28752 Desc ...
- 5.django学习模型
##Django Models ##编写models 1.在应用根目录下创建models.py并引入models模块,创建类,继承models.Model该类即是一张数据表 2.字段创建 ##映射数据 ...
- Nginx+Keeplived双机热备(主从模式)
Nginx+Keeplived双机热备(主从模式) 参考资料: http://www.cnblogs.com/kevingrace/p/6138185.html 双机高可用一般是通过虚拟IP(漂移IP ...
- 2018acm-icpc徐州站后记
大概是我所有比赛里面打的最自闭的比赛了,真的很不想写这篇比赛的后记. 记得我刚学习acm的时候,觉得如果每一场比赛都能拿一块铜牌就好了,只要不铁都是很开心的. 但是没想到真正拿铜会这么难受.可能是因为 ...
- ResourceBundle读取properties配置文件
package cn.rocker.readProperties; import java.util.ResourceBundle; import org.junit.Test; /** * @Cla ...
- Elastic Stack之FileBeat使用实战
Elastic Stack之FileBeat使用实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客数据流走向:FileBeat ===>logstash == ...
- 网络编程基础【day10】:操作系统介绍
一.为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成. 一般而言,现代计算机系统是一个复杂的系统. 其一:如果每位 ...
- 微服务之consul
一.概述 consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案,不再需要依 ...
- [leetcode-118]Pascal's triangle 杨辉三角
Pascal's triangle (1过) Given numRows, generate the first numRows of Pascal's triangle. For example, ...
- Structured Streaming Programming Guide结构化流编程指南
目录 Overview Quick Example Programming Model Basic Concepts Handling Event-time and Late Data Fault T ...