简介

selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器

作用: 可以让浏览器完成相关自动化的操作

和爬虫的关联:

  • 模拟登陆
  • 可以获取动态加载的页面数据

编码流程:

  • 导包
  • 实例化浏览器对象(驱动)
  • 制定相关自动化的行为动作

环境安装

  • 下载安装selenium:pip install selenium
  • 下载浏览器驱动程序:
    • http://chromedriver.storage.googleapis.com/index.html
  • 查看驱动和浏览器版本的映射关系:
    • http://blog.csdn.net/huilan_same/article/details/51896672

简单使用/效果展示

01:

from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path='./chromedriver.exe')
bro.get('https://www.baidu.com')    #获取的连接页面
sleep(2)
#标签定位
tag_input = bro.find_element_by_id('kw')
tag_input.send_keys('人民币')   #标签中输入值
sleep(2)btn = bro.find_element_by_id('su')
btn.click()  #标签点击事件
sleep(2)bro.quit()  #退出

02.

from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path='./chromedriver.exe')bro.get('https://xueqiu.com/')
sleep(5)#执行js实现滚轮向下滑动
js = 'window.scrollTo(0,document.body.scrollHeight)'    #两个参数一个是X轴,一个是y轴,此时用的是Y轴
bro.execute_script(js)
sleep(2)
bro.execute_script(js)
sleep(2)
bro.execute_script(js)
sleep(2)
bro.execute_script(js)
sleep(2)a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a')
a_tag.click()
sleep(5)
#获取当前浏览器页面数据(动态)
print(bro.page_source)    bro.quit()

PhantomJs及谷歌无头浏览器无可视化:

#PhantomJs是一款无可视化界面的浏览器(免安装)from selenium import webdriverfrom time import sleepbro = webdriver.PhantomJS(executable_path=r'C:\Users\Administrator\Desktop\爬虫+数据\爬虫day03\phantomjs-2.1.1-windows\bin\phantomjs.exe')bro.get('https://xueqiu.com/')sleep(2)bro.save_screenshot('./1.png')#执行js实现滚轮向下滑动

js = 'window.scrollTo(0,document.body.scrollHeight)'bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.execute_script(js)sleep(2)bro.save_screenshot('./2.png')# a_tag = bro.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[1]/div[2]/div[2]/a')# bro.save_screenshot('./2.png')# a_tag.click()

sleep(2)#获取当前浏览器页面数据(动态)print(bro.page_source)bro.quit()现在用的很少,知道即可 

from selenium import webdriverfrom time import sleepfrom selenium.webdriver.chrome.options import Options# 创建一个参数对象,用来控制chrome以无界面模式打开

chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=chrome_options)bro.get('https://www.baidu.com')sleep(2)bro.save_screenshot('1.png')#标签定位

tag_input = bro.find_element_by_id('kw')tag_input.send_keys('人民币')sleep(2)btn = bro.find_element_by_id('su')btn.click()sleep(2)print(bro.page_source)bro.quit()谷歌无头浏览器 

转载于:https://www.cnblogs.com/pythonz/p/10933858.html

爬虫之Selenium相关推荐

  1. 爬虫之selenium爬取斗鱼网站

    爬虫之selenium爬取斗鱼网站 示例代码: from selenium import webdriver import timeclass Douyu(object):def __init__(s ...

  2. 爬虫之selenium控制浏览器执行js代码

    爬虫之selenium控制浏览器执行js代码 selenium可以让浏览器执行我们规定的js代码,运行下列代码查看运行效果 import time from selenium import webdr ...

  3. 爬虫之selenium标签页的切换

    爬虫之selenium标签页的切换 当selenium控制浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢?需要我们做以下两步: 获取所有标签页的窗口句柄    [获取窗口句柄,通过窗 ...

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

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

  5. 爬虫篇——selenium(webdriver)进行用户登录并爬取数据)

    爬虫篇--selenium(webdriver)进行用户登录并爬取数据 摘要 (一)创建browser对象 (二)用户登录 (三)数据爬取 摘要 本文主要介绍了如何通过selenium使用Chorme ...

  6. python爬虫之selenium,谷歌无头浏览器

    python爬虫之selenium和PhantomJS 主要的内容 lenium hantomjs 无头浏览器 的懒加载 一 什么是selenium? 介绍 它是python中的一个第三方库,对外提供 ...

  7. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. layui获取input信息_python爬虫—用selenium爬取京东商品信息

    python爬虫--用selenium爬取京东商品信息 1.先附上效果图(我偷懒只爬了4页) 2.京东的网址https://www.jd.com/ 3.我这里是不加载图片,加快爬取速度,也可以用Hea ...

  9. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  10. Python爬虫之selenium高级功能

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

最新文章

  1. 优化嵌套查询 || 优化OR条件
  2. 557. 反转字符串中的单词 III
  3. ActiveMQ安装笔记
  4. 【VS开发】CTimeSpan类
  5. 传递一个父id返回所有子id的用法,可用于删除父级以下的所有子级
  6. Windows下基于IIS服务的SSL服务器的配置
  7. ajaxSubmit、ajaxSubmit添加额外数据
  8. feign不能正常传递参数MultipartFile(文件)时的解决手段
  9. 零基础可以学python么
  10. 【.NET框架实战】IdentityServer4身份验证、授权
  11. 2016SDAU编程练习二1009
  12. 老板让我做研发负责人,谈谈我的想法和认知
  13. 河北计算机对口高考数学考试题,2015年河北省对口高考数学试题(含答案)
  14. 利用MFC库获取指定城市的天气实况
  15. 选秀节目打分,分为专家评委和大众评委
  16. 好东东-汉语词法分析系统ICTCLAS (Institute of Computing Technology, Chinese Lexical Analysis System)
  17. 计算机自培计划,个人年度自培计划
  18. 苹果cms微信对接php,苹果cmsV10微信公众号对接插件安装教程
  19. 使用SMTP协议,通过QQ邮箱发送邮件
  20. Kubernetes Kubelet 状态更新机制

热门文章

  1. 路由与交换 基础 1:组播
  2. ASP.NET3.5问题集
  3. C语言 遍历字符串数组
  4. 河南大学明德计划2020计算机学院,关于选拔2020级物理学“明德计划”实验班学生的通知...
  5. 【SSM框架系列】Spring - JdbcTemplate声明式事务
  6. 【模板/经典题型】FWT
  7. Python yield 用法
  8. JFrame 居中显示
  9. bzoj1297 [SCOI2009]迷路(矩阵优化)
  10. Linq to SQL 中实现模糊查询