IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> selenium的使用(1) -> 正文阅读

[Python知识库]selenium的使用(1)

Python中selenium的使用

requests与selenium的区别:
requests目前只能请求静态页面
selenium即可以请求静态页面,也可以请求动态页面

创建浏览器对象并加载页面

from selenium import webdriver

URL = 'https://www.baidu.com/'
# 创建浏览器对象
b = webdriver.Chrome()
# 请求链接
b.get(URL)

设置浏览器窗口

# 设置浏览器窗口大小
b.set_window_size(1366, 768)
# 将浏览器设置成全屏
b.maximize_window()

前进后退

# 后退
b.back()
time.sleep(2)
# 前进
b.forward()
time.sleep(1)

打印网页源码、滚动滚动条

selenium使用execute_script方法执行JavaScript操作
scrollTo() 方法可把内容滚动到指定的坐标。

# 打印网页源码:是字符串 ---> bs4
print(b.page_source)

# 滚动滚动条
max_y = 4000
y = 0
while y <= max_y:
    b.execute_script(f'window.scrollTo(0, {y})')
    y += 1000
    time.sleep(1)
  • 如果selenium打开了一个浏览器窗口,但是这个窗口有多个标签页:
    close()只关闭当前所在的标签页
    quit()直接关闭浏览器窗口

  • 浏览器打开是会产生缓存文件:
    close()只关闭浏览器,不执行清理缓存操作
    quit()在关闭浏览的同时会清除缓存

b.close()
b.quit()

设置配置项

from selenium import webdriver

URL = 'https://www.taobao.com/'
URL1 = 'https://www.baidu.com/'
# 设置配置项
options = webdriver.ChromeOptions()
# 不加载图片, 提升速度
options.add_argument('blink-settings=imagesEnabled=false')
# 创建浏览器对象
b = webdriver.Chrome('resources/chromedriver.exe')
# 设置浏览器窗口大小
b.set_window_size(1366, 768)
b.get(URL)
# 防止selenium被监测
# 先修改js,再加载js
b.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
    }
)

选项卡

# 打开新的标签页
b.execute_script('window.open()')
# print(b.window_handles)
# 切换选项卡
b.switch_to.window(b.window_handles[1])
b.get(URL1)
time.sleep(2)
# 切换选项卡
b.switch_to.window(b.window_handles[0])

获取元素信息

# 点击登录选项
b.find_element_by_class_name('h').click()
# 点击二维码
b.find_element_by_class_name('icon-qrcode').click()

隐式等待

当使用了隐式等待执行测试的时候,如果webDriver没有在DOM中找到元素,将继续等待,
超出设定时间后则抛出找不到元素的异常,换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找DOM,默认的时间是0

# 隐式等待:全局等待方式
b.implicitly_wait(10)

# 监测信息是否被加载
b.find_elements_by_class_name('site-nav-login-info-nick ')

cookies

# 获取cookie
cookie = b.get_cookies()
print(cookie)

# 保存cookie:
with open('resources/cookie.txt', 'w', encoding='utf-8') as file:
    file.write(str(cookie))

b.quit()

实例-爬淘宝

"""
example03 - 实例

Author: Asus
Date: 2021/8/18
"""
import time

from Tools.i18n.pygettext import safe_eval
# 导入定位
from selenium.webdriver.common import keys
from selenium import webdriver

URL = 'https://www.taobao.com/'

options = webdriver.ChromeOptions()
options.add_argument('blink-settings=imagesEnabled=false')

with open('自己爬虫爬好的cookie', 'r') as file:
    cookie = file.read()
print(cookie)
new_cookie = safe_eval(cookie)

# 创建浏览器对象
b = webdriver.Chrome('resources/chromedriver.exe', options=options)
# 防止selenium被监测
# 先修改js,再加载js
b.execute_cdp_cmd(
    "Page.addScriptToEvaluateOnNewDocument",
    {
        "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
    }
)
# 先访问淘宝页面,再传cookie
b.get(URL)
for i in new_cookie:
    if i['secure']:
        b.add_cookie(i)
# 再重新请求页面
b.get(URL)

# 定位搜索框
search = b.find_element_by_id('q').send_keys('三只松鼠大礼包')
time.sleep(2)
# 定位搜索按钮
enter = b.find_element_by_class_name('btn-search').send_keys(keys.Keys.ENTER)

time.sleep(5)
# 拖动进度条
max_y = 5000
y = 0
while y <= max_y:
    b.execute_script(f'window.scrollTo(0,{y})')
    y += 1000
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:01:31  更:2021-08-19 12:02:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:24:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码