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的更多相关文章

  1. Python爬虫之设置selenium webdriver等待

    Python爬虫之设置selenium webdriver等待 ajax技术出现使异步加载方式呈现数据的网站越来越多,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给定位元素的定位增加 ...

  2. [Python爬虫] 之七:selenium webdriver定位不到元素的五种原因及解决办法(转载)

    转载:http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example:        //WebElement ...

  3. [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息

    本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...

  4. 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据

    用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...

  5. python爬虫之初始Selenium

    1.初始 Selenium[1]  是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Moz ...

  6. python爬虫笔记----4.Selenium库(自动化库)

    4.Selenium库 (自动化测试工具,支持多种浏览器,爬虫主要解决js渲染的问题) pip install selenium 基本使用 from selenium import webdriver ...

  7. Python爬虫——Scrapy整合Selenium案例分析(BOSS直聘)

    概述 本文主要介绍scrapy架构图.组建.工作流程,以及结合selenium boss直聘爬虫案例分析 架构图 组件 Scrapy 引擎(Engine) 引擎负责控制数据流在系统中所有组件中流动,并 ...

  8. PYTHON 爬虫笔记七:Selenium库基础用法

    知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...

  9. 数据之路 - Python爬虫 - 动态页面

    一.Ajax数据爬取 1.Ajax介绍 Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML. 它不是一门编程语言,而是利用JavaSc ...

随机推荐

  1. java中四种操作xml方式的比较

    1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息. ...

  2. java判断用户输入的是否至少含有N位小数

    判断用户输入的是否至少含有N位小数. 1.当用户输入的是非数字时抛出异常,返回false. 2.当用户输入数字是,判断其数字是否至少含有N位小数,如果不含有,返回false. 3.当用户输入的数字的小 ...

  3. 一篇关于Maven项目的jar包Shell启动脚本

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...

  4. JavaSE语法基础(3)---函数、数组

    JavaSE语法基础(3)---函数.数组 函数的概念:实现特定功能的一段代码,可反复使用. 函数的出现减少代码冗余,提高代码的复用性,可读性,可维护性,可以使每个功能模块独立起来,方便分工合作. 函 ...

  5. Linux chgrp命令

    在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...

  6. Spring Framework 简介

    Spring Framework 依赖注入.事务管理.Web应用程序.数据访问.消息传递.测试和更多的核心支持. Tips: Spring 官网:https://spring.io/ spring f ...

  7. java排序算法(二):直接选择排序

    java排序算法(二) 直接选择排序 直接选择排序排序的基本操作就是每一趟从待排序的数据元素中选出最小的(或最大的)一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,它需要经过n- ...

  8. 关于使用Mybatis的使用说明(一)【未完善待更新】

    (一)搭建Mybatis环境 (1)先导入常用的jar包:并且需要将lib文件夹下的包导入到项目中 (2)创建config文件夹,配置log4j.properties文件 # Global loggi ...

  9. jsp pageEncoding属性详解

    Java pageEncoding原理详解 首先看下文章解释: 意思是jsp文件本身的编码 巨大的疑问:这里有一个很大的问题,既然你都已经从jsp中读到了这条属性,证明内容读取正确,那你还需要知道这条 ...

  10. [日常] NOIP 2017滚粗记

    突然挑了这么个滑稽的时间补了游记... (成绩日常延时再加上人太菜估计基本上就是颓废记录) 然而文化课太废可能会被强制退役QAQ所以先补了再说吧 day0 一大早被老姚交代了个开十一机房门的任务... ...