selenium的用法

一、selenium概念

  用来完成浏览器自动化的相关操作

  使用程序编写一系列的键盘、鼠标的相关操作(让浏览器来完成), 当我们执行代码时,就会触发一系列的事件

二、selenium在爬虫中的作用

  可以获取动态加载的数据

三、selenium安装

  pip install selenium

  下载浏览器驱动程序: http://chromedriver.storage.googleapis.com/index.html (找到最接近的版本)

四、selenium使用

  导包: from selenium import webdriver

  实例化某一款浏览器的驱动,获取一个对象

  使用对象中的相关方法制定一系列的事件(键盘、鼠标的相关操作)

五、自动访问百度

from selenium import webdriver

bro = webdriver.Chrome(executable_path=‘./chromedriver.exe‘)
bro.get("https://www.baidu.com")

bro.close()

六、自动百度搜索刘德华案例

import time
from selenium import webdriver

bro = webdriver.Chrome(executable_path=‘./chromedriver.exe‘)
bro.get("https://www.baidu.com")

# 1. 定位到输入框
kw = bro.find_element_by_id("kw")

# 2. 键入刘德华关键字
kw.send_keys("刘德华")
time.sleep(5)

# 3. 定位到"百度一下"按钮
input_key = bro.find_element_by_id("su")

# 4. 触发点击事件
input_key.click()
time.sleep(5)

bro.close()

七、爬取雪球网

from selenium import webdriver

bro = webdriver.Chrome(‘./chromedriver.exe‘)
bro.get(‘https://xueqiu.com‘)

# 获取动态加载的数据
print(bro.page_source)

bro.quit()

八、爬取雪球网的更多数据

import time
from selenium import webdriver

bro = webdriver.Chrome(‘./chromedriver.exe‘)
bro.get(‘https://xueqiu.com‘)

js = "window.scrollTo(0, document.body.scrollHeight)" # 表示滚轮往下拖动一屏的高度

bro.execute_script(js)
time.sleep(2)

bro.execute_script(js)
time.sleep(2)

bro.execute_script(js)
time.sleep(2)

bro.execute_script(js)
time.sleep(2)

# 获取动态加载的数据
print(bro.page_source)

bro.quit()

九、phantomJS

# phantomJS
import time
from selenium import webdriver

bro = webdriver.PhantomJS(‘./phantomjs.exe‘)
bro.get("https://www.baidu.com")

# 截图
bro.save_screenshot(‘11.jpg‘)

# 1. 定位到输入框
kw = bro.find_element_by_id("kw")

# 2. 键入刘德华关键字
kw.send_keys("刘德华")
time.sleep(2)

# 3. 定位到"百度一下"按钮
input_key = bro.find_element_by_id("su")

# 4. 触发点击事件
input_key.click()

# 截图
bro.save_screenshot(‘21.jpg‘)
time.sleep(2)

bro.close()

十、前进和后退

# 前进和后退
import time
from selenium import webdriver

bro = webdriver.Chrome(executable_path=‘./chromedriver.exe‘)

# 注意: bro对象只有将页面完全加载完成之后,才会进行下一步的事件触发
bro.get("https://www.baidu.com")
bro.get("https://www.taobao.com")
bro.get("https://www.jd.com")
time.sleep(2)

# 后退
bro.back()
time.sleep(2)

# 前进
bro.forward()
time.sleep(2)

bro.close()

十一、动作链(一)

# 动作链
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

bro = webdriver.Chrome(executable_path=‘./chromedriver.exe‘)
bro.get("https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")

# 定位到页面中的iframe标签内部,这样才可以定位到它内部的标签
bro.switch_to.frame("iframeResult")

# 实例化一个动作链对象,将浏览器对象加载到这个动作链对象中
actions = ActionChains(bro)
# 1. 定位“请拖拽我”标签
source_tag = bro.find_element_by_id("draggable")
# 2. 点击“请拖拽我”, 并拖动
actions.click_and_hold(source_tag)

for i in range(1, 6):
    actions.move_by_offset(50,0)
    time.sleep(1)

actions.perform()  # 执行所有动作链

time.sleep(2)

bro.close()

十二、动作链(二)

# 动作链
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

bro = webdriver.Chrome(executable_path=‘./chromedriver.exe‘)
bro.get("https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")

# 定位到页面中的iframe标签内部,这样才可以定位到它内部的标签
bro.switch_to.frame("iframeResult")

# 实例化一个动作链对象,将浏览器对象加载到这个动作链对象中
actions = ActionChains(bro)
# 1. 定位“请拖拽我”标签
source_tag = bro.find_element_by_id("draggable")
target_tag = bro.find_element_by_id(‘droppable‘)

# 点击并拖动,并丢弃
actions.click_and_hold(source_tag)
for i in range(1, 6):
    actions.move_by_offset(30,0)
    time.sleep(1)
actions.drag_and_drop(source_tag, target_tag)

actions.perform()  # 执行所有动作链

bro.close()

十三、获取cookie

# 获取cookie
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver import ChromeOptions

option = ChromeOptions()
option.add_experimental_option(‘excludeSwitches‘, [‘enable-automation‘])

browser = webdriver.Chrome(‘./chromedriver.exe‘, options=option)
browser.get(‘https://www.baidu.com‘)
print(browser.get_cookies())

# browser.add_cookie({‘name‘: ‘name‘, ‘domain‘: ‘www.zhihu.com‘, ‘value‘: ‘germey‘})
# print(browser.get_cookies())

# browser.delete_all_cookies()
# print(browser.get_cookies())

原文地址:https://www.cnblogs.com/youhongliang/p/12708199.html

时间: 2024-10-24 19:39:30

selenium的用法的相关文章

Python爬虫利器:Selenium的用法

本文和大家分享的主要是python 爬虫 利器Selenium的相关内容,一起来看看吧,希望对大家 学习python爬虫有所帮助. Selenium  是什么?一句话,自动化测试工具.它支持各种浏览器,包括  Chrome , Safari , Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个  Selenium  的插件,那么便可以方便地实现 Web界面的测试.换句话说叫  Selenium  支持这些浏览器驱动.话说回来, PhantomJS 不也是一个浏览器吗,那么  S

java selenium (八) Selenium IDE 用法

Selenium IDE 是Firefox 浏览器的一个插件, 它会记录你对Firefox的操作,并且可以回放它的操作. 用法简单,不过我觉得这个没多大的用处 阅读目录 Selenium IDE 介绍 Selenium IDE 是Firefox 浏览器的一个插件, 它会记录你对Firefox的操作,并且可以回放它的操作 Selenium IDE 的作用 在实际自动化测试中,不会用Selenium IDE, 因为没有逻辑判断,什么的,不方便 IDE 主要用来辅助,  录制了操作步骤, 导成java

爬虫--selenium库用法

selenium用法详解 selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题. 模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候 一.声明浏览器对象 注意点一,Python文件名或者包名不要命名为selenium,会导致无法导入 from selenium import webdriver #webdriver可以认为是浏览器的驱动器,要驱动浏览器必须用到webdriver,支持多种浏览器,这里以Chrome为

selenium基础用法

快速入门 调用环境变量指定的PhantomJS浏览器创建浏览器对象 from selenium import webdriver driver = webdriver.Chrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") get方法会一直等到页面被完全加载,然后才会继续程序,通常测试会在这里选择 time.sleep(2) driver.get('http

Selenium基本用法以及元素定位

一.Selenium 简介 Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,提供一套测试函数,用于支持Web自动化测试.函数非常灵活,能够完成界面元素定位.窗口跳转.结果比较.他支持IE.Firefox.Safari.Chrome.Android手机浏览器,也支持Java.C#.Python.Ruby.PHP等语言,支持如Windows.Linux.IOS.Android等操作系统,是一套为web自动化测试量身定制的web框架, Selenium框架由多个工

用selenium爬动态网页

0-安装 我用python2.7,用pip安装selenium即可,phantomjs到官网下载安装,也不难. 1-主要参考的几篇文章 Python爬虫利器四之PhantomJS的用法 Python爬虫利器五之Selenium的用法 2-代码 from selenium import webdriver from urllib2 import quote import os import time os.getcwd() os.chdir('/Users/.../python/mywork')

java selenium (一) selenium 介绍

Selenium 是目前用的最广泛的Web UI 自动化测试框架. 本系列文章,将深入简出来讲解selenium 的用法 文章的末尾处, 有整个系列的链接 阅读目录 selenium 的命名 selenium 的意思是 硒   (有点QTP 杀手的意思) QTP mercury 是水银     硒可以对抗水银 QTP 目前的价格是  三个单机版 十万人民币左右, 越来越少的人用QTP了 什么是selenium 一套软件工具,用来支持不同的自动化测试方法 开源软件:可以根据需要来增加重构工具的某些

[python]利用selenium模拟用户操作抓取天猫评论数据

准备: python3.5 安装selenium包 第一种方法: cmd里输pip install selenium,但是经常报错 第二种方法: 下载安装包-cmd进入解压路径-python setup.py install-报错permission denied-右键安全更改报错文件夹权限为完全控制-再次安装成功unknown error: unable to discover open pages-下载chromedriver放在环境变量目录下测试自动打开百度时提示"您使用的是不受支持的命令

盘点selenium phantomJS使用的坑

说到python爬虫,刚开始主要用urllib库,虽然接口比较繁琐,但也能实现基本功能.等见识了requests库的威力后,便放弃urllib库,并且也不打算回去了.但对一些动态加载的网站,经常要先分析请求,再用requests模拟,比较麻烦.直到遇到了selenium库,才发现爬动态网页也可以这么简单,果断入坑! selenium是python的一个第三方自动化测试库,虽然是测试库,却也非常适合用来写爬虫,而phantomJS是其子包webdriver下面的一个浏览器.phantomJS本身是