【安全合规】python爬虫从0到1 -selenium的基本使用

简介: python爬虫从0到1 -selenium的基本使用

前言

当我们使用urllib来访问浏览器时,并不是都可以获取完全的网页源码,urllib的功能主要是模拟浏览器向服务器发送请求,而selenium则是直接在浏览器中打开网页。就像真实的浏览器在运行。接下来我们一起进入selenium的学习。

文章目录前言

前言

(一)什么是selenium

(二)为什么使用selenium

(三)selenium的安装

1.浏览器驱动下载

2.selenium安装

3.selenium的简单使用

(四)selenium的元素定位

1.通过id来找到对象

2.根据标签属性的属性值来找到对象

3.根据xpath语句来获取对象

4.根据bs4语法来获取对象

5.根据标签名字来获取对象

6.通过当前页面中的链接文本来获取对象

(五)selenium访问元素信息

1.获取元素属性的属性值

2.获取标签名

3.获取元素文本

(六)selenium中的交互

1.点击

2.输入

3.后退操作

4.前进操作

5.模拟js滚动

6.获取网页代码

7.退出

实例


(一)什么是selenium

selenium是一个用于web应用程序测试的工具。

selenium测试直接运行在浏览器中,就像真实的用户操作一样。

支持通过各种driver(FirfoxDriver,IEDeriver,operaDriver,chromeDriver)驱动真实浏览器去完成测试。

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

(二)为什么使用selenium

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


(三)selenium的安装

1.浏览器驱动下载

  1. 谷歌浏览器驱动下载地址image.png
  2. FireFox驱动下载地址
  • image.png
  1. IE驱动下载地址image.png

这里根据自己使用的浏览器和版本下载对应的驱动版本。

安装好之后为zip文件,需要进行解压并拖进pycharm当前路径方便使用

2.selenium安装

image.png

3.selenium的简单使用


from selenium import webdriver
# 驱动的路径
path = 'chromedriver.exe'
# 模拟真实的浏览器
browser =webdriver.Chrome(path)
url = "https://baidu.com"
browser.get(url)
# page_source用来获取网页源码
content = browser.page_source
print(content)

(四)selenium的元素定位

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

以下有6种方法:

1.通过id来找到对象

button = browser.find_element_by_id('su')

2.根据标签属性的属性值来找到对象

button = browser.find_element_by_class_name('wd')

3.根据xpath语句来获取对象

button = browser.find_element_by_xpath('//input[@id="su"]')

4.根据bs4语法来获取对象

button = browser.find_element_by_css_selector('#su')

5.根据标签名字来获取对象

button = browser.find_element_by_tag_name('input')

6.通过当前页面中的链接文本来获取对象

button = browser.find_element_by_link_text('新闻')

(五)selenium访问元素信息

例:

image.png

1.获取元素属性的属性值

image.png

button = browser.find_element_by_id('su')
# 获取元素属性值
content = button.get_attribute('class')
print(content)

image.png

button = browser.find_element_by_id('su')
# 获取标签名
content = button.tag_name
print(content)


运行结果:

image.png

3.获取元素文本image.png

button = browser.find_element_by_link_text('新闻')
# 获取元素文本
content = button.text
print(content)


运行结果:


image.png

(六)selenium中的交互

1.点击image.png2.输入image.png3.后退操作image.png4.前进操作image.png5.模拟js滚动image.png6.获取网页代码image.png7.退出image.png

实例

from selenium import webdriver
import time
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
url = 'https://baidu.com'
browser.get(url)
# 在搜索框内输入内容
input = browser.find_element_by_id('kw')
input.send_keys('钢铁是怎样炼成的')
time.sleep(3)
# 找百度一下按钮并点击
button = browser.find_element_by_id('su')
button.click()
time.sleep(2)
# 滑倒底部
move = 'document.documentElement.scrollTop=100000'
browser.execute_script(move)
time.sleep(2)
# 查找下一页按钮并点击
next = browser.find_element_by_xpath('//a[@class="n"]')
next.click()
# 返回
browser.back()
# 前进
browser.forward()
# 退出
browser.quit()
相关文章
|
8月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
9月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
10月前
|
数据采集 数据挖掘 测试技术
Go与Python爬虫实战对比:从开发效率到性能瓶颈的深度解析
本文对比了Python与Go在爬虫开发中的特点。Python凭借Scrapy等框架在开发效率和易用性上占优,适合快速开发与中小型项目;而Go凭借高并发和高性能优势,适用于大规模、长期运行的爬虫服务。文章通过代码示例和性能测试,分析了两者在并发能力、错误处理、部署维护等方面的差异,并探讨了未来融合发展的趋势。
998 0
|
8月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
9月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
1048 19
|
8月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
9月前
|
SQL 测试技术 数据库
healenium+python+selenium
上次介绍了如何利用healenium+java+selenium来实现selenium的自愈,这次介绍如何healenium+python+selenium。关于healenium+python+selenium网上资料更少,并且甚至是错误的。在著名的书籍《软件测试权威指南中》也是有一定问题的。现在介绍如下
459 4
|
9月前
|
数据采集 存储 Web App开发
处理Cookie和Session:让Python爬虫保持连贯的"身份"
处理Cookie和Session:让Python爬虫保持连贯的"身份"
|
8月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
10月前
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房

推荐镜像

更多