第十六天-爬虫selenium库

目录

1.介绍

2.使用 selenium

1.安装

2.使用

1.测试打开网页,抓取雷速体育日职乙信息

2.通过xpath查找

3.输入文本框内容 send_keys

4.点击事件 click

5.获取网页源码:

6.获取cookies

7.seleniumt提供元素定位方式:8种

8.控制浏览器前进、后退、刷新

9.控制鼠标

10. 设置等待

11设置后台运行

12.后台终止

3.实战


1.介绍

1. selenium是一个用于web应用程序自动化测试工具,Selenium测试直接运行在浏览器中;

2.像真正的用户在操作一样2,驱动浏览执行特定的动作,如点击、下来等操作;

3.selenium支持浏览器

4.支持的语言

5.selenium在爬虫的应用

2.使用 selenium

1.安装

 pip3 install selenium

2.使用

1.测试打开网页,抓取雷速体育日职乙信息

# coding:utf-8import time
from selenium import webdriver
from selenium.webdriver.common.by import By# 打开浏览器
webdriver_chrome = webdriver.Chrome()
# 浏览器窗口最大化:
webdriver_chrome.maximize_window()
# 爬取日职乙联赛信息
webdriver_chrome.get("https://www.leisu.com/data/zuqiu/comp-568/season-11286")
# 默认页面是升级附加赛:提取主队信息
for home in webdriver_chrome.find_elements(By.XPATH, "//td[@class='home']/a"):print("升级附加赛:主队信息:", home.text)
# 点击联赛
webdriver_chrome.find_element(By., "//div[@class='stage_name']").click()
# 获取联赛信息
for home in webdriver_chrome.find_elements(By.XPATH, "//td[@class='home']/a"):print("联赛:主队信息:", home.text)# 获取标题
print("标题:", webdriver_chrome.title)
print("获取cookie", webdriver_chrome.get_cookies())
print("获取页面源码", webdriver_chrome.page_source())# 打开5秒关闭
time.sleep(5)# 关闭浏览器
webdriver_chrome.quit()

2.通过xpath查找

 webdriver_chrome.find_elements(By.XPATH, "//td[@class='home']/a")

3.输入文本框内容 send_keys

 webdriver_chrome.find_element(By.XPATH,"//input[@id='']").send_keys("内容")

4.点击事件 click

webdriver_chrome.find_element(By.XPATH,"//input[@id='']").click()

5.获取网页源码:

webdriver_chrome.page_source()

6.获取cookies

webdriver_chrome.get_cookies()

7.seleniumt提供元素定位方式:8种

老版本使用

新版使用

find_elements(By.XPATH, "原始值")

find_elements(By.ID, "原始值")

find_elements(By.CLASS_NAME, "原始值")

等等

8.控制浏览器前进、后退、刷新

9.控制鼠标

import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By# 打开浏览器
webdriver_chrome = webdriver.Chrome()
# 浏览器窗口最大化:
webdriver_chrome.maximize_window()
# 打开百度
webdriver_chrome.get("https://www.baidu.com/")
#鼠标移动到设置上
#定位设置
set_element_above=webdriver_chrome.find_element(By.ID,"s-usersetting-top")
print(set_element_above.text)
#移动鼠标到设置上
ActionChains(webdriver_chrome).move_to_element(set_element_above).perform()time.sleep(5)
webdriver_chrome.quit()

10. 设置等待

1. 使用场景:有时候需要等某些元素加载后进行操作,或者网络原因需要加载;

2.等待分为2种方式,分为显式等待和隐式等待

3.显式等待代码:打开百度,输入内容

import timefrom selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 打开浏览器
webdriver_chrome = webdriver.Chrome()
# 浏览器窗口最大化:
webdriver_chrome.maximize_window()
# 打开百度
webdriver_chrome.get("https://www.baidu.com/")
# WebDriverWait:显示等待
# 参数:1.webdriver_chrome打开浏览器对象,2.timeout,3.轮训参数
# until:EC场景判断,通过id找到输入框
element = WebDriverWait(webdriver_chrome, 5, 0.5).until(EC.presence_of_element_located((By.ID, "kw")))
# 找到元素输入查找内容
element.send_keys("Python")time.sleep(5)
webdriver_chrome.quit()

4.隐式等待代码:打开百度,输入内容

import timefrom selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import  NoSuchElementException# 打开浏览器
webdriver_chrome = webdriver.Chrome()
# 浏览器窗口最大化:
webdriver_chrome.maximize_window()
#隐式等待
webdriver_chrome.implicitly_wait(5)
# 打开百度
webdriver_chrome.get("https://www.baidu.com/")try:webdriver_chrome.find_element(By.ID,"kw1").send_keys("python")
except NoSuchElementException as e:print("超时没有找到元素:",e)time.sleep(5)
webdriver_chrome.quit()

11设置后台运行

from selenium.webdriver.chrome.options import Options
options = {"headless": "--headless","no_sandbox": "--no-sandbox","gpu": "--disable-gpu"
}
chrome_options = Options()
driver = webdriver.Chrome(options=chrome_options)

12.后台终止

1.如运行异常可使用任务管理器,找到进程“chromediver.exe”结束进程

3.实战

1. 自动爬取比赛信息

2.自动翻页页

3.导出到excel中

待完成...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/718355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Security OAuth2如何自定义返回的 Token 信息

文章目录 Spring Security OAuth2如何自定义返回的 Token 信息定制不透明令牌的信息Springsecurity-oauth2之TokenEndPoint参考Spring Security OAuth2如何自定义返回的 Token 信息 Spring Boot+OAuth2,如何自定义返回的 Token 信息? 参考URL: https://www.jianshu.com/p/b7…

【Go】指针的声明和初始化

package mainimport "fmt"func main() {// 声明一个整数变量var num int 42// 声明一个指向整数的指针变量,并将其初始化为指向整数变量的地址var ptr *int &num// 打印整数变量的值和指针变量的值(即整数变量的地址)fmt.Pri…

2024第24届中国国际工业博览会新能源与智能网联汽车展电池制造展馆

2024第24届中国国际工业博览会新能源与智能网联汽车展电池制造展馆 时间:2024年9月24日-28日 地点:国家会展中心(上海) 主办单位:工业和信息化部、国家发展和改革委员会、科学技术部、商务部、中国科学院、中国工程…

【游记】GDOI2024

GDOI2024游记 老年退役选手。NOIP 218 分,GDOI 纯纯旅游。 Day -5 周日返校,开始停课。 开始攒 rp。 Day -4 模拟赛,犯困,啥也不会。 下午打球。 Day -3 模拟赛,不困,还是啥也不会。 下午打球。 …

CSS3单独制作移动端页面布局方式(流式布局、flex弹性布局)

目录 1. 流式布局(百分比布局)2. flex弹性布局(强烈推荐)2.1 介绍2.2 Flex容器常见属性2.2.1 flex-direction2.2.2 justify-content2.2.3 flex-wrap2.2.4 align-items2.2.5 align-content2.2.6 flex-flow 2.3 Flex项目常见属性2.3.1 flex2.3.2 align-self和order 1. 流式布局(百…

银河麒麟之Workstation安装

一、VMware Workstation简介 VMware Workstation是一款由VMware公司开发的虚拟化软件,它允许用户在一台物理计算机上运行多个操作系统,并在每个操作系统中运行多个虚拟机。VMware Workstation提供了一个可视化的用户界面,使用户可以轻松创建、…

程序环境和预处理(2)

文章目录 3.2.7 命名约定 3.3 #undef3.4 命令行定义3.5 条件编译3.6 文件包含3.6.1 头文件被包含的方式3.6.2 嵌套文件包含 4. 其他预处理指令 3.2.7 命名约定 一般来讲函数和宏的使用语法很相似,所以语言本身没法帮我们区分二者,那我们平时的一个习惯是…

linux条件判断之if-then

if..then是最常见的条件判断语句,简而言之,就是当符合某个条件判断的时候,就予以进行某项工作。 1.if-then格式 if-then格式1: if [ 条件判断表达式 ];then 当条件判断表达式成立时,需执行的命令 fi if-then格式2…

Redis安全加固策略:绑定Redis监听的IP地址 修改默认端口 禁用或者重命名高危命令

Redis安全加固策略:绑定Redis监听的IP地址 & 修改默认端口 & 禁用或者重命名高危命令 1.1 绑定Redis监听的IP地址1.2 修改默认端口1.3 禁用或者重命名高危命令1.4 附:redis配置文件详解(来源于网络) 💖The Beg…

驱动开发面试复习

创建字符设备 1 创建设备号 alloc_chrdev_region 2.创建cdev cdev_init 3.添加一个 cdev,完成字符设备注册到内核 cdev_add 4.创建类 class_create 5.创建设备 device_create 1.内核空间与用户空间数据 copy_from_user 和copy_to_user 俩个函数来完成。 copy_from_user 函数…

618快递准点到达,别忘了感谢它!

进入6月以来,全国快递日均业务量飞速上涨。 虽然618大促是电商的主场,但作为不可或缺的物流环节,为了这场年中大考,快递企业在此期间也使尽浑身解数,竞相比拼配送速度。那么,为了更快的时效,快递…

uniapp 的video播放如何实现小窗功能

在页面中使用<video>组件来展示视频&#xff0c;并设置好相应的属性和事件监听&#xff1a; <video src"video.mp4" play"onVideoPlay" pause"onVideoPause"></video>在页面的data中定义一个变量来表示是否开启小窗模式&#…

【Wio Terminal】使用WiFi(3)- Wi-F的高级使用

使用WiFi&#xff08;3&#xff09; Wi-F的高级使用HTTPClient 的使用HTTP GETHTTPs GETHTTP POSTWebServerHTTP Authentication Web ServerDNSServermDNSmDNS-SDWiFiManager Wi-F的高级使用 本节介绍了一些WiFi的高级库用法&#xff0c;如HTTPClient、DNSServer和WebServer库…

美国亚利桑那州立大学宣布与OpenAI建立合作伙伴关系!

美国亚利桑那州立大学 (Arizona State University) 在官网宣布—— 将与OpenAI建立合作伙伴关系&#xff01; 该校也成为了第一个与OpenAI合作的高等教育机构。 来源&#xff1a;亚利桑那州立大学官网 亚利桑那州立大学校长表示&#xff1a; “我们认识到人工智能系统将持续…

高并发IO底层原理浅析(四)

Java NIO中的Selector&#xff08;选择器&#xff09;是一个用于检测多个非阻塞通道&#xff08;Channel&#xff09;是否准备就绪进行读写操作的关键组件&#xff0c;它实现了I/O多路复用技术。在单个线程中&#xff0c;Selector可以监听和管理多个Channel上的事件&#xff0c…

Redis安全加固策略:配置文件权限设置 配置本地日志存储目录 连接超时时间限制

Redis安全加固策略&#xff1a;配置文件权限设置 & 配置本地日志存储目录 & 连接超时时间限制 1.1 配置文件权限设置1.2 配置本地日志存储目录1.3 连接超时时间限制 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1.1 配置文件权限…

如何理解template<size_t N>?

template<size_t N> 是C中的模板参数&#xff0c;用于定一个非类型参数的值。它可以在编译时确定&#xff0c;并且可以在编译时进行计算和使用。 例如&#xff0c;我们可以定义一个模板函数&#xff0c;接受一个大小为N的数组作为参数&#xff1a; template<size_t …

Qt/事件分发器/事件过滤器

事件分发器 //事件分发器bool event(QEvent* e); //事件分发器&#xff1a;&#xff1a;用途 分发事件 bool MyLabel::event(QEvent* e) {if(e->type() QEvent::MouseButtonPress){//如果是鼠标摁下 拦截事件 不向下分发QMouseEvent* ev static_cast<QMouseEvent*>…

Qt-Qss 样式表属性大全

目录 前言 源码文件信息 QSS属性大全 1.控件常用的属性 2.控件常用属性值 3.控件常用状态 4.其他 前言 相信很大一部分开发者真的被Qt样式表的属性搞挺头痛的&#xff01; 一方面Qss的示例Demo太过简单&#xff0c; 另一方面&#xff0c;Qss的所有属性在Qt的官方文…

软考高级:逆向工程相关概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…