编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

这篇具有很好参考价值的文章主要介绍了编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

编程小白的自学笔记十(python爬虫入门二+实例代码详解) 

编程小白的自学笔记九(python爬虫入门+代码详解) 


目录

系列文章目录

前言

一、使用Selenium打开子页面

二、使用Selenium实现网页滚动

三、使用selenium操作下拉列表

总结


前言

昨天已经学了使用Selenium相关函数打开百度网页,并在输入框内输入我们想要的文字,今天我们再进一步学习。


一、使用Selenium打开子页面

什么是子页面:一个页面中存在多个子页面,通常是指在一个网站或网页的主要内容划分成若干板块,每个板块在网页中的体现就是栏目。我们已百度贴吧为例,它的广告栏就是一个子页面。

 

可以看出子页面也是有ID的,这样我们就可以通过ID锁定这个子页面,

代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver= webdriver.Chrome()
driver.get('https://tieba.baidu.com/')
element = driver.find_element(By.ID, 'iframeu6739266_0')
driver.switch_to.frame(element)
driver.find_element(By.ID, 'title0').click()
time.sleep(50)

结果如图: 

 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二),编程小白自学笔记,笔记,python,爬虫

我们可以看到,我们打开了广告栏的第一个广告。下面我们仔细研究一下代码: 

“element = driver.find_element(By.ID, 'iframeu6739266_0')”这一段代码就锁定了子网页的位置,

“driver.switch_to.frame(element)”表示切换到子网页,这里面的参数element必须是一个WebElement对象,表示要切换到的iframe元素

“driver.find_element(By.ID, 'title0').click()”表示点击第一个广告。

Ps:个人是一个小白,对于网页代码不是很了解,参考第一天的案例,我们难道不能直接锁定第一个广告的ID,进行点击吗?然后我就使用的代码,很遗憾,无法得到想要的结果。  

二、使用Selenium实现网页滚动

不多说,先上代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver= webdriver.Chrome()
driver.get('https://blog.csdn.net/m0_49914128?type=blog')
for i in range(0,100,5):
    js= f'window.scrollTo(0,{i*100})'
    driver.execute_script(js)
    time.sleep(3)
 

程序运行以后,自动向下查看网页内容,就好像我们自己在滚动鼠标。

运行截图我就不截了,就是我的个人主页在向下滚动。

我们仔细分析一下代码:

前面都容易理解,主要说明下for循环里面的内容

“ driver.execute_script(js)”,driver.execute_script() 是 Selenium WebDriver 提供的一个方法,用于在当前页面执行 JavaScript 代码。它的语法如下:driver.execute_script(script, *args)其中,script 是要执行的 JavaScript 代码,*args 是可选参数,用于传递给 JavaScript 代码的参数。

那么就是说“ f'window.scrollTo(0,{i*100})'”其实是一串JavaScript代码,它实现的功能是用于将页面滚动到指定的坐标。其中,0 是横坐标,i*100 是纵坐标。

三、使用selenium操作下拉列表

当我看到这个作用的时候,我首先想到的是我找到位置,然后使用click()点击再选择不就行了,然后我进行了实际操作,确实可以点击出下拉表,因为学习的不够深入,在下拉列表里操作点击需要选择的项就不行了。于是我尝试了N种方法,最终成功了,代码是这样的:

driver.find_element(By.ID,'cardType').click()

driver.find_element(By.CSS_SELECTOR, "option[value='B']").click()

或者替换成

driver.find_element(By.XPATH,"//option[@value='B']").click()

也行。

 我们再来看看专门针对下拉表的方面,完整代码如下:

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
import time
driver= webdriver.Chrome()
driver.get('https://kyfw.12306.cn/otn/regist/init')
select = Select(driver.find_element(By.ID,'cardType'))
select.select_by_value("护照")
time.sleep(30)

本以为会自动将证件类型选择护照,结果报错,找不到“护照”,将“select.select_by_value("护照")”代码替换成“select.select_by_visible_text("护照")”成功运行。如下图 

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二),编程小白自学笔记,笔记,python,爬虫 


我们来分析下代码:

driver.find_element(By.ID,'cardType')”是选定下拉列表的位置, Select()函数创建一个 Select 对象,这个对象可以用来操作下拉菜单中的选项,“select.select_by_visible_text("护照")”就实现了选择护照的功能。

 为了找出为什么使用value找不到的原因,我加了一行代码,“print(select.options)”,select.options是返回所以选项的列表,我对其进行输出,看结果是什么:

 [<selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="4214676d-d07d-456a-b12b-cbf0cb593edf")>, <selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="d768f3b0-ab39-473e-bf63-8969890d8886")>, <selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="62c2afd7-edc3-42c0-8109-8e67db452d4c")>, <selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="b95f5b92-b4dc-4173-b449-722b7f7689a2")>, <selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="d148fddc-cff7-414c-9bec-45c9c9e22611")>, <selenium.webdriver.remote.webelement.WebElement (session="7792dee3dda6be18ea0d6894ce7884d9", element="40e4175a-2d8b-4bee-bada-8bbb71c886f3")>]

 确实没有发现“护照”,而select.select_by_visible_text(护照)表示通过可见文本选择选项,“护照”是我们可见的,所以成功运行。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Selenium的使用,后续我们再深入学习,文章来源地址https://www.toymoban.com/news/detail-611607.html

到了这里,关于编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白必看Python爬虫Selenium库详细教程

    在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析HTML代码获取,这些数据是通过AJAX异步加载方式或经过JS渲染后才呈现在页面上显示出来。 selenuim是一种自动化测试工具,它支持多种浏览器。而在爬虫中,我们可以使用它来模拟浏览器浏览页面,进

    2024年02月01日
    浏览(43)
  • 爬虫入门指南(7):使用Selenium和BeautifulSoup爬取豆瓣电影Top250实例讲解【爬虫小白必看】

    在本篇博客中,我们将使用 Python 的 Selenium 和 BeautifulSoup 库来实现一个简单的网页爬虫,目的是爬取豆瓣电影TOP250的数据,并将结果保存到Excel文件中。 Selenium 是一个自动化测试工具,可以模拟用户在浏览器中的交互操作。我们将使用 Selenium 来打开网页、获取网页源码。 B

    2024年02月12日
    浏览(54)
  • 项目二:学会使用python爬虫请求库(小白入门级)

    上一章已经了解python爬虫的基本知识,这一次让我们一起来学会如何使用python请求库爬取目标网站的信息。当然这次爬虫之旅相信我能给你带来不一样的体验。 目录 一、安装requests 库 简介 安装 步骤 1.requests的基本使用3步骤 2.查看所使用编码 3.设置编码 二、认识requests请求

    2024年04月24日
    浏览(35)
  • 小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

    一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望

    2024年02月14日
    浏览(39)
  • Python教程_编程入门自学教程_菜鸟教程-免费教程分享

    Python - 教程 Python - 概述 Python - 环境设置 Python - 基本语法 Python - 变量类型 Python - 基本运算符 Python - 决策 Python - 循环 Python - 数字 Python - 字符串 Python - 列表 Python - 元组 Python - 字典 Python - 日期和时间 Python - 功能 Python - 模块 Python - 文件I / O. Python - 异常处理 Python - 面向对象

    2024年02月02日
    浏览(44)
  • Python爬虫学习笔记(七)————Selenium

    目录 1.什么是selenium? 2.为什么使用selenium? 3.selenium安装 4.selenium的使用步骤 5.selenium的元素定位 6.访问元素信息 7.交互 1.什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种

    2024年02月16日
    浏览(36)
  • 【零基础入门Python爬虫】第三节 Python Selenium

    Python Selenium 是一种自动化测试框架,可以模拟用户在浏览器中的交互行为。它是一个基于浏览器驱动程序的工具,可用于Web应用程序测试、数据采集等方面,能够让开发人员通过代码自动化地模拟用户在浏览器中的操作,并获取到所需的数据。 Selenium的主要优势是它可以模拟

    2024年02月04日
    浏览(62)
  • 【Python爬虫开发】selenium从入门到精通

    1、概述 selenium本身是一个自动化测试工具。它可以让python代码调用浏览器。并获取到浏览器中加载的各种资源。 我们可以利用selenium提供的各项功能。 帮助我们完成数据的抓取。 2、学习目标 掌握 selenium发送请求,加载网页的方法 掌握 selenium简单的元素定位的方法 掌握 s

    2024年02月03日
    浏览(43)
  • 网络爬虫(Python:Selenium、Scrapy框架;爬虫与反爬虫笔记)

    Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具。 Selenium需要安装浏览器驱动,才能调用浏览器进行自动爬取或自动化测试,常见的包括Chrome、Firefox、IE、PhantomJS等浏览器。 注意:驱动下载解压后,置于Python的安装目录下;然后将Python的安装目

    2024年01月18日
    浏览(64)
  • OpenCV自学笔记十二:形态操作(二)

    目录 1、礼帽运算 2、黑帽运算 3、核运算 礼帽运算常用于去除图像中的噪声、增强图像边缘等应用场景。它通过先进行开运算(Opening)操作,然后用原始图像减去开运算结果得到。 下面是使用OpenCV进行礼帽运算的示例代码: 在上述代码中,首先将图像以灰度模式加载,然后

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包