「Python」Selenium

news/2024/2/21 3:09:51

基本使用

  1. 导入:from selenium import webdriver
  2. 创建浏览器操作对象:browser = webdriver.Chrome()
  3. 访问网站
# 访问网站
url = 'https://www.jd.com'
browser.get(url)
"""
selenium基本使用Author:binxin
Date:2023/11/29 14:42
"""
# 导入
from selenium import webdriver# 创建浏览器操作对象
browser = webdriver.Chrome()# 访问网站
url = 'https://www.jd.com'
browser.get(url)# page_source获取网页源码
content = browser.page_source
print(content)

元素定位

  1. 导入:from selenium.webdriver.common.by import By
inputTag = driver.find_element(By.ID, "value")inputTag = driver.find_element(By.CLASS_NAME, "value")inputTag = driver.find_element(By.NAME, "value")inputTag = driver.find_element(By.TAG_NAME, "value")inputTag = driver.find_element(By.XPATH, "value")inputTag = driver.find_element(By.CSS_SELECTOR, "value")
"""
selenium 元素定位
Author:binxin
Date:2023/11/29 15:05
"""
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()url = 'https://www.baidu.com'browser.get(url)# 元素定位# 根据ID找到对象
# button = browser.find_element(By.ID,'su')# 根据标签属性的属性值获取对象
# button = browser.find_element(By.NAME, 'wd')# 根据xpath语句获取对象
# button = browser.find_element(By.XPATH, '//input[@id="su"]')# 根据标签名获取对象
# button = browser.find_element(By.TAG_NAME, 'input')# 使用bs4的语法获取对象
# button = browser.find_element(By.CSS_SELECTOR, '#su')button = browser.find_element(By.LINK_TEXT, '新闻')
print(button)

元素信息

  1. 获取元素属性:.get_attribute('class')
  2. 获取元素文本:.txt
  3. 获取标签名:.tag_name
"""
元素信息Author:binxin
Date:2023/11/29 16:31
"""
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()url = 'https://www.baidu.com'
browser.get(url)input = browser.find_element(By.ID, 'su')# 获取标签的属性
print(input.get_attribute('class'))
# 获取标签名
print(input.tag_name)a = browser.find_element(By.LINK_TEXT, '新闻')
# 获取元素文本
print(a.text)

交互

  1. 点击:click()
  2. 输入:send_keys()
  3. 后退操作:browser.back()
  4. 前进操作:browser.forward()
  5. 模拟JS滚动:
js='document.documentElement.scrollTop=100000'
browser.execute_script(js)  # 执行js代码
  1. 获取网页代码:page_source
  2. 退出:browser.quit()
"""
selenium交互Author:binxin
Date:2023/11/29 16:47
"""
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()url = 'https://www.baidu.com'browser.get(url)import timetime.sleep(2)# 获取文本框对象
input = browser.find_element(By.ID, 'kw')# 在文本框中输入周杰伦
input.send_keys('周杰伦')time.sleep(2)# 获取百度一下按钮
button = browser.find_element(By.ID, 'su')# 点击按钮
button.click()time.sleep(2)# 滑动窗口到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)time.sleep(2)# 获取下一页按钮
next = browser.find_element(By.XPATH, '//a[@class="n"]')
# 点击下一页
next.click()time.sleep(2)# 返回上一页
browser.back()
time.sleep(2)# 重新回到上一页
browser.forward()time.sleep(3)# 退出
browser.quit()

Chrome handless

  1. 基本代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')browser = webdriver.Chrome(options=chrome_options)
  1. 封装配置
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef share_browser():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')browser = webdriver.Chrome(options=chrome_options)return browser
"""
Chrome handlessAuthor:binxin
Date:2023/11/30 11:06
"""
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef share_browser():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')browser = webdriver.Chrome(options=chrome_options)return browser# 封装调用
browser = share_browser()
url = 'http://www.baidu.com/'
browser.get(url)
browser.save_screenshot('baidu.png')

https://www.xjx100.cn/news/3270974.html

相关文章

Android 9.0 禁用adb install 安装app功能

1.前言 在9.0的系统产品定制化开发中,在进行一些定制开发中,对于一些app需要通过属性来控制禁止安装,比如adb install也不允许安装,所以就需要 熟悉adb install的安装流程,然后来禁用adb install安装功能,接下来分析下adb 下的安装流程 2.禁用adb install 安装app功能的…

Pandas to_csv() - 将 DataFrame 转换为 CSV

Pandas DataFrame to_csv() 函数将 DataFrame 转换为 CSV 数据。我们可以传递一个文件对象来将 CSV 数据写入文件中。否则,CSV 数据将以字符串格式返回。 Pandas DataFrame to_csv() 语法 DataFrame to_csv() 函数的语法是: def to_csv(self,path_or_…

Redis集中管理Session和系统初始化参数详解

Redis 是一个开源的、基于内存的键值存储系统,通常用作数据库、缓存或消息传递系统。在 Web 应用程序中,Redis 常用于集中管理 Session 数据和系统初始化参数。 Redis 管理 Session Session 是 Web 应用程序中用于保持用户状态的一种机制…

SpringCloud入门概述

1. 介绍 Spring Cloud 1.1 什么是 Spring Cloud Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集,它为开发者提供了一系列开箱即用的工具和库,用于构建分布式系统中的微服务架构。Spring Cloud 提供了诸如服务发现、配置中心、负载均衡、…

【Java EE初阶十二】网络编程TCP/IP协议(二)

1. 关于TCP 1.1 TCP 的socket api tcp的socket api和U大片的socket api差异很大,但是和前面所讲的文件操作很密切的联系 下面主要讲解两个关键的类: 1、ServerSocket:给服务器使用的类,使用这个类来绑定端口号 2、Socket&#xf…

MongoDB:开启你的NoSQL之旅(一)

随着大数据时代的到来,传统的关系型数据库在某些场景下已经无法满足快速增长和变化的数据需求。这时,NoSQL数据库应运而生,其中MongoDB以其独特的特性和功能,在众多NoSQL数据库中脱颖而出。本文将为你详细介绍MongoDB的特性和功能…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

云原生:下一代应用的构建与运行方式

随着云计算技术的快速发展&#xff0c;云原生&#xff08;Cloud Native&#xff09;已经成为了一个炙手可热的话题。那么&#xff0c;什么是云原生&#xff1f;它为什么如此重要&#xff1f;在本文中&#xff0c;我们将一起探讨云原生的概念、优势以及如何构建云原生应用。 一…