python爬虫动态html selenium.webdriver
python爬虫:利用selenium.webdriver获取渲染之后的页面代码!
1 首先要下载浏览器驱动:
常用的是chromedriver 和phantomjs
chromedirver下载地址: https://npm.taobao.org/mirrors/chromedriver
phantomjs下载地址: http://phantomjs.org/download.html
使用chromedriver要保证有chrome浏览器
2 安装
phantomjs:
将下载好的文件 解压缩(此处版本用xxx代替了)
tar -xvf phantomjs-xxxx.tar.bz2
将压缩结果移动到系统中软件应该呆在的地方去(此处版本用xxx代替了)
sudo mv phantomjsxxx /usr/local/src/phantomjs
创建软连接到系统环境 这样就可以使用phantomjs命令了
sudo ln -sf /usr/local/src/phantojs/bin/phantomjs /usr/local/bin/phantomjs
将软连接 添加执行的权限
sudo chmod u+x,o+x /usr/local/bin/phantomjs
检验一下正常使用: 返回版本信息就代表能正常使用
phantomjs --version
chromedriver:
将下载的文件移动到软件应该呆的目录去:
sudo mv chromedriver /usr/local/bin/chromedriver
改变用户执行的权限:
sudo chmod u+x,o+x /usr/local/bin/chromedriver
检验是否正常使用:
chromedriver --version
3 程序代码:
from selenium import webdriver
import time
# 获取一个Chrome的驱动
driver = webdriver.Chrome()
'''
发送请求
'''
driver.get('http://www.baidu.com/') # 设置打开窗口的大小
driver.set_window_size(1024,768) '''
获取页面内容的常用方式
'''
# 获取元素并输入内容
driver.find_element_by_id('kw').send_keys('苹果')
# 获取元素并点击
driver.find_element_by_id('su').click()
# 利用xpath获取
# div_list = driver.find_element_by_xpath('//div')
#利用页面内容
# next_page = driver.find_element_by_link_text('下一页').get_attribute('href') # 将浏览器页面截图保存本地
driver.save_screenshot('./百度.png') # 获得浏览器的页面源码(经过渲染之后)
html = driver.page_source print('*'*50) # 获取页面的cookies
cookie_list = driver.get_cookies()
# cookie 转换成字典
cookies = { dict['name']:dict['value'] for dict in cookie_list }
print(cookies) # 退出当前页面
driver.close()
# 退出浏览器
driver.quit()
python爬虫动态html selenium.webdriver的更多相关文章
- Python爬虫之设置selenium webdriver等待
Python爬虫之设置selenium webdriver等待 ajax技术出现使异步加载方式呈现数据的网站越来越多,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给定位元素的定位增加 ...
- [Python爬虫] 之七:selenium webdriver定位不到元素的五种原因及解决办法(转载)
转载:http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example: //WebElement ...
- [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息
本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...
- 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据
用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...
- python爬虫之初始Selenium
1.初始 Selenium[1] 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Moz ...
- python爬虫笔记----4.Selenium库(自动化库)
4.Selenium库 (自动化测试工具,支持多种浏览器,爬虫主要解决js渲染的问题) pip install selenium 基本使用 from selenium import webdriver ...
- Python爬虫——Scrapy整合Selenium案例分析(BOSS直聘)
概述 本文主要介绍scrapy架构图.组建.工作流程,以及结合selenium boss直聘爬虫案例分析 架构图 组件 Scrapy 引擎(Engine) 引擎负责控制数据流在系统中所有组件中流动,并 ...
- PYTHON 爬虫笔记七:Selenium库基础用法
知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...
- 数据之路 - Python爬虫 - 动态页面
一.Ajax数据爬取 1.Ajax介绍 Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML. 它不是一门编程语言,而是利用JavaSc ...
随机推荐
- 纯代码实现wordpress文章隐藏内容评论可见
在很多网站上都看过这个效果,比如说知己知彼网站,他的部分资源是需要我们评论后才能下载的,那么这个到底有什么用呢,对我而言,除了拿来装逼,还可以增加我的评论数量,不多说,先看看效果: 其实WordPre ...
- 设计模式——观察者模式(C++实现)
#include <iostream> #include <vector> #include <algorithm> #include <iterator&g ...
- python解决图的最短路径问题
在hihoCoder上遇到一个算法题目,描述如下: 对图结构有了解的不难发现,这是经典的求图的最短路径问题.以下是python代码: def findMin(row): minL = max(row) ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- protobuf的下载、编译和使用
一 背景 工作中临时需要使用 protobuf v3.0.2 做消息格式转换,折腾了很久才搞定,这里特意做一个记录. 二 准备工作 全程使用的电脑为公司的win7 64位旗舰版,已经预先安装VS201 ...
- Mycat 分片规则详解--数据迁移及节点扩容
使用的是 Mycat 提供的 dataMigrate 脚本进行对数据进行迁移和节点扩容,目前支持的 Mycat 是1.6 版本,由于 Mycat 是由 Java 编写的因此在做数据迁移及节点扩容时需要 ...
- 【数据库】mysql数据库索引
文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基 ...
- 内部办公网与IDC机房的GRE隧道配置实践
背景 公司内网与机房服务器为了实现用内网IP通信的功能,故使用了linux的IP gre隧道的方式.使得公司内部可以直接通过路由直连的方式访问机房服务器. 拓扑图如下: 注:拓扑中的外网IP为虚构的I ...
- echarts地图的引用
最近是跟echarts杠上了 所在公司是搞数据的 所以身为前端的我 就必须使用echarts将数据展示出来 ,进公司一周 ,前前后后大概用了八九种echarts图,我举得最难的就是引用的地图,因为刚开 ...
- unittest自动化使用HTMLTestRunner的中文编码问题
1.使用unittest自动化测试框架,使用HTMLTestRunner生成测试报告,中文乱码问题! 如图 2.解决方法: 第一步:先在自己的测试脚本中添加 import sys reload(sys ...