【安全合规】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()
相关文章
|
14天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
18天前
|
数据采集 Python
【python】爬虫-西安医学院-校长信箱
本文以西安医学院-校长信箱为基础来展示爬虫案例。来介绍python爬虫。
【python】爬虫-西安医学院-校长信箱
|
24天前
|
数据采集 安全 Python
python并发编程:Python实现生产者消费者爬虫
python并发编程:Python实现生产者消费者爬虫
25 0
python并发编程:Python实现生产者消费者爬虫
|
1月前
|
数据采集 数据挖掘 调度
异步爬虫实践攻略:利用Python Aiohttp框架实现高效数据抓取
本文介绍了如何使用Python的Aiohttp框架构建异步爬虫,以提升数据抓取效率。异步爬虫利用异步IO和协程技术,在等待响应时执行其他任务,提高效率。Aiohttp是一个高效的异步HTTP客户端/服务器框架,适合构建此类爬虫。文中还展示了如何通过代理访问HTTPS网页的示例代码,并以爬取微信公众号文章为例,说明了实际应用中的步骤。
|
4天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
18 0
|
4天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
13 0
|
7天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。
|
13天前
|
Web App开发 测试技术 网络安全
|
19天前
|
数据采集 存储 前端开发
Python爬虫如何快速入门
写了几篇网络爬虫的博文后,有网友留言问Python爬虫如何入门?今天就来了解一下什么是爬虫,如何快速的上手Python爬虫。
21 0
|
1月前
|
数据采集 存储 Web App开发
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧