python爬虫之selenium和PhantomJS
主要的内容
  • lenium

  • hantomjs

  • 无头浏览器

  • 的懒加载

一 什么是selenium?
介绍

它是python中的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。

安装
pip install selenium
如何使用selenium 进行操作呢?

1 获取某一款浏览器的驱动程序(这里我以谷歌浏览器为例)

谷歌浏览器的驱动下载地址:

http://chromedriver.storage.googleapis.com/index.html

2 如何选择版本号下载,这里下载的驱动程序必须和浏览器的版本统一,可以通过这个网址中提供的版本映射表进行对应

先查看自己谷歌浏览器中的版本信息,然后通过映射表进行相应的下载即可

http://blog.csdn.net/huilan_same/article/details/51896672

需求 使用selenium打开百度

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from selenium import webdriver
from time import sleep
#驱动路径 记得前面加r 防止字符转义
#!!!注意这里必须把驱动程序中的路径写完整,后面必须加上这个chromedriver.exe  否则会报错 执行不成功
driver = webdriver.Chrome('C:\pacong_data\day3\chromedriver.exe')
#用driver打开百度页面  后面的地址是百度的地址
driver.get('http://www.baidu.com')
# 查找页面的“设置”选项,发送一个你要搜索的值,并进行点击
driver.find_element_by_id('kw').send_keys('人民币')
sleep(2)
#并进行点击
driver.find_element_by_id('su').click()
sleep(2)
#退出驱动程序
driver.quit()#使用下面的方法,查找指定的元素进行操作即可find_element_by_id            根据id找节点find_elements_by_name         根据name找find_elements_by_xpath        根据xpath查找find_elements_by_tag_name     根据标签名找find_elements_by_class_name   根据class名字查找
二 phantomjs

PhantomJS是一款无界面的浏览器,其操作与上述的操作基本上是一致的,由于无界面,为了我们能够清楚的看到她的自动化操作流程,它为用户提供了一个截屏的功能,使用save_screenshot函数实现。

phantomjs实现无界面的操作
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from selenium import webdriver
import time#PhantomJS是一个无头界面的浏览器
#!!!!注意这里的路径是PhantomJS存放的路径
browser = webdriver.PhantomJS(r'C:\pacong_data\day3\phantomjs-2.1.1-windows\bin\phantomjs.exe')url ='http://www.baidu.com/'
browser.get(url)
time.sleep(3)#进入百度界面    然后截屏
browser.save_screenshot(r'phantomjs\baidu.png')bd_input = browser.find_element_by_id('kw').send_keys('小猪配齐')
#在此截屏
browser.save_screenshot(r'phantomjs\xiaozhu.png')
time.sleep(3)bd_sous = browser.find_element_by_id('su').click()
在此截屏
browser.save_screenshot(r'phantomjs\sous.png')
time.sleep(3)browser.quit()
谷歌无头浏览器(是一款无界面的浏览器)
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options#这个是一个用来控制chrome以无界面模式打开的浏览器
#创建一个参数对象,用来控制chrome以无界面的方式打开
chrome_options = Options()
#后面的两个是固定写法 必须这么写
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')#驱动路径 谷歌的驱动存放路径
path = r'C:\pacong_data\day3\chromedriver.exe'#创建浏览器对象browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)url ='http://www.baidu.com/'browser.get(url)
time.sleep(3)
browser.save_screenshot('baid.png')browser.quit()

python爬虫之selenium,谷歌无头浏览器相关推荐

  1. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  2. Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息

    对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...

  3. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  4. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  5. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  6. Python爬虫之selenium库使用详解

    Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...

  7. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  8. Python爬虫之selenium高级功能

    Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框.密码框.下拉框.登陆框等. 这些涉及与页面的交互,比如输入.删除.点击等. ...

  9. python爬虫——使用selenium爬取微博数据(一)

    python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...

最新文章

  1. 密度聚类OPTICS算法
  2. c语言程序头文件作用,C语言头文件
  3. 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门
  4. UNITY2018.3 在editor下运行时new memoryprofiler显示 shader占用内存很大的问题在安卓上并没有看到...
  5. 小程序picker标题_微信小程序-自定义picker选择器
  6. 手机只能签荣耀!最忠诚代言人胡歌喊你去天猫超品日
  7. AM335 嵌入式 linux,am335x开发板建立嵌入式 Linux NFS 开发环境
  8. 【Java】PMD规则学习(1) --字符串比较
  9. [工具类]将时间转换为unix时间戳格式
  10. 冰河木马使用(纯属学习)
  11. Tabular Editor学习笔记_1
  12. 计算机图书馆管理系统论文模板,基于Java的图书馆管理系统计算机科学与技术毕业设计(论文)...
  13. 企业CIS 系统的收集方法分析
  14. 日记侠:你的文章为什么阅读量会那么高?
  15. R语言之 as.formula()
  16. 基于IAAS和SAAS的运维自动化-张克琛
  17. java rhino 运行 js_深入浅出Rhino:Java与JS互操作
  18. 杭电多校联赛2017年总结
  19. 麒麟座IIC-STM32F103RET6(1)-完成基础LED
  20. PHP 日本商标查询,文字商标查询是否侵权

热门文章

  1. c++设计模式之状态模式
  2. secureCRT的安装及破解
  3. MySQL Windows ZIP 免费安装和启动设置
  4. 当店铺关联,你知道怎么办吗
  5. 两边同时取对数求复合函数_高中数学:对数运算三难点
  6. 【转载】RPA如何自动化SAP系统?
  7. 【MM模块】Material Planning - 物料计划
  8. 数据库schema 是什么
  9. 关于《资产负债表》中未分配利润项目的填列
  10. 成本要素区分成本中心