Python爬虫学习笔记(七)————Selenium

这篇具有很好参考价值的文章主要介绍了Python爬虫学习笔记(七)————Selenium。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.什么是selenium?

2.为什么使用selenium?

3.selenium安装

4.selenium的使用步骤

5.selenium的元素定位

6.访问元素信息

7.交互


1.什么是selenium?

(1)Selenium是一个用于Web应用程序测试的工具。

(2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。

(3)支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真实浏览器完成测试。

(4)selenium也是支持无界面浏览器操作的。

2.为什么使用selenium?

模拟浏览器功能,自动执行网页中的js代码,实现动态加载。

3.selenium安装

(1)操作谷歌浏览器驱动下载地址

                http://chromedriver.storage.googleapis.com/index.html

(2)谷歌驱动和谷歌浏览器版本之间的映射表

                 http://blog.csdn.net/huilan_same/article/details/51896672

(3)查看谷歌浏览器版本

                谷歌浏览器右上角‐‐>帮助‐‐>关于

(4)pip install selenium

4.selenium的使用步骤

(1)导入:from selenium import webdriver

(2)创建谷歌浏览器操作对象:

                path = 谷歌浏览器驱动文件路径

                browser = webdriver.Chrome(path)

(3)访问网址

                url = 要访问的网址

                browser.get(url)


# (1)导入selenium
from selenium import webdriver

# (2) 创建浏览器操作对象

path = 'chromedriver.exe'

browser = webdriver.Chrome(path)

# (3)访问网站
# url = 'https://www.baidu.com'
#
# browser.get(url)

url = 'https://www.jd.com/'

browser.get(url)

# page_source获取网页源码
content = browser.page_source
print(content)

5.selenium的元素定位

元素定位:自动化要做的就是模拟鼠标和键盘来操作来操作这些元素,点击、输入等等。操作这些元素前首先要找到它们,WebDriver提供很多定位元素的方法

方法:

(1)find_element_by_id              

                eg:button = browser.find_element_by_id('su')

(2)find_elements_by_name

                eg:name = browser.find_element_by_name('wd')

(3)find_elements_by_xpath

                eg:xpath1 = browser.find_elements_by_xpath('//input[@id="su"]')

(4)find_elements_by_tag_name

                eg:names = browser.find_elements_by_tag_name('input')

(5)find_elements_by_css_selector

                eg:my_input = browser.find_elements_by_css_selector('#kw')[0]

(6)find_elements_by_link_text

                eg:browser.find_element_by_link_text("新闻")

注:现在把这些代码整合到一起了,可以通过find_element(by='', value='')找,by的值为属性名,value为属性值


from selenium import webdriver

path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'https://www.baidu.com'
browser.get(url)

# 元素定位

# 根据id来找到对象
button = browser.find_element_by_id('su')
print(button)

# 根据标签属性的属性值来获取对象的
button = browser.find_element_by_name('wd')
print(button)

# 根据xpath语句来获取对象
button = browser.find_elements_by_xpath('//input[@id="su"]')
print(button)

# 根据标签的名字来获取对象
button = browser.find_elements_by_tag_name('input')
print(button)

# 使用的bs4的语法来获取对象
button = browser.find_elements_by_css_selector('#su')
print(button)

button = browser.find_element_by_link_text('直播')
print(button)

6.访问元素信息

获取元素属性

            .get_attribute('class')

获取元素文本

            .text

获取标签名

            .tag_name


from selenium import webdriver

path = 'chromedriver.exe'
browser = webdriver.Chrome(path)


url = 'http://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)

7.交互

  • 点击:click()
  • 输入:send_keys()
  • 后退操作:browser.back()
  • 前进操作:browser.forword()
  • 模拟JS滚动:

                js='document.documentElement.scrollTop=100000'

                browser.execute_script(js)  执行js代码

  • 获取网页代码:page_source
  • 退出:browser.quit() 

实例:百度自动搜索周杰伦并翻页等操作 



from selenium import webdriver

# 创建浏览器对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

# url
url = 'https://www.baidu.com'
browser.get(url)

import time
time.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()

 文章来源地址https://www.toymoban.com/news/detail-594755.html

到了这里,关于Python爬虫学习笔记(七)————Selenium的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

    编程小白的自学笔记十(python爬虫入门二+实例代码详解 编程小白的自学笔记九(python爬虫入门+代码详解)  编程小白的自学笔记八(python中的多线程)  编程小白的自学笔记七(python中类的继承)  目录 系列文章目录 文章目录 前言 一、Selenium是什么 二、安装Selenium  三、

    2024年02月16日
    浏览(52)
  • 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

    编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解) 编程小白的自学笔记十(python爬虫入门二+实例代码详解)  编程小白的自学笔记九(python爬虫入门+代码详解)  目录 系列文章目录 前言 一、使用Selenium打开子页面 二、使用Selenium实现网页滚动 三、使用

    2024年02月15日
    浏览(38)
  • python爬虫从0到1 -selenium的基本使用(1),非常适合收藏的Python进阶重难点笔记

    5.根据标签名字来获取对象 button = browser.find_element_by_tag_name(‘input’) 6.通过当前页面中的链接文本来获取对象 button = browser.find_element_by_link_text(‘新闻’) (五)selenium访问元素信息 ==================================================================================== 例: 1.获取元素属性的属性值

    2024年04月09日
    浏览(53)
  • 【Python_Selenium学习笔记(五)】基于Selenium模块实现鼠标操作

    为了模拟鼠标操作,Selenium 模块提供了 Actionchains 类,可以模仿人的几乎任何鼠标行为操作; 在此篇文章主要介绍 Actionchains类 的常用方法,使用流程,并以具体的示例进行展示。 perform():执行ActionChains中存储的行为; context_click(on_element=None):点击鼠标右键; double_click(on_

    2024年02月13日
    浏览(45)
  • 【Python_Selenium学习笔记(四)】基于Selenium模块实现键盘操作

    在 Selenium 模块中,提供了一个 Keys 类,来处理键盘操作; 在 Selenium 模块中,使用 send_keys() 方法,来模拟键盘输入, 此篇文章主要介绍如何使用 Keys 类 和 send_keys() 方法 实现 模拟键盘操作,并以具体的示例进行展示。 Keys类键盘事件 实现功能 Keys.BACK_SPACE 删除键 Keys.SPACE 空

    2023年04月09日
    浏览(106)
  • 【Python_Selenium学习笔记(一)】Selenium介绍及基本使用方法

    Selenium是一套 Web 网站的程序自动化操作解决方案,广泛应用于自动化测试及爬虫。此篇文章主要介绍 Selenium 的 安装和基本使用流程。 Selenium 框架的安装主要就是安装两样东西: Selenium 客户端库 和 浏览器驱动 。 1.1、Selenium 框架安装 使用 pip 命令安装 pip install selenium ,安装

    2023年04月13日
    浏览(62)
  • Python-selenium学习笔记-css选择元素

    方法名:find_element(By.CSS_SELECTOR, \\\"元素名\\\") find_elements找所有 示例: 执行结果:  代表寻找第一个类名为plant的元素, 等效于根据CLASS寻找元素 若要 根据tag名 寻找,不用加“.”, 直接写tag名称即可,如下: 结果:   根据id寻找用“#”+id名, 中间不能有空格 结果: 子元素是

    2024年03月23日
    浏览(45)
  • 【学习笔记】爬虫(Ⅰ)—— Selenium和Pytest

            爬虫(Web Scraper)是指一类软件程序或脚本,其基本原理是模拟人类用户在网页上的浏览行为,通过发送 HTTP 请求来 获取 网页内容,并 解析 网页内容、 提取 所需的信息。         爬虫通常用于从网站上抓取数据,它们 批量化 地、 自动 地、浏览互联网并收

    2024年04月16日
    浏览(48)
  • Java学习笔记:爬虫-Selenium高级操作

    Selenium VS Jsoup Jsoup 优点:程序的可控性强,不依赖于外部环境,容错性比较强,并发处理更灵活,适合于服务器端开发; 缺点:对于复杂页面(ajax、表单数据校验、登录)处理比较麻烦,对于反爬的网站需要做报文头等的设置工作。 Selenium 优点:简单; 缺点:依赖于外部环

    2024年02月06日
    浏览(46)
  • Python学习笔记——selenium定位iframe和元素(快速定位)

    在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。  当前界面没有,调整driver位置 1.Xpath定位  2,.其他定位方式 获取元素、操作失败重复操作,直至操作成功。

    2024年02月13日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包