【安全合规】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()
相关文章
|
1月前
|
数据采集 存储 XML
Python爬虫:深入探索1688关键词接口获取之道
在数字化经济中,数据尤其在电商领域的价值日益凸显。1688作为中国领先的B2B平台,其关键词接口对商家至关重要。本文介绍如何通过Python爬虫技术,合法合规地获取1688关键词接口,助力商家洞察市场趋势,优化营销策略。
|
2月前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
2月前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
2月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
123 6
|
10天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
11天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
20天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
25天前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
|
1月前
|
数据采集 JSON 开发者
Python爬虫京东商品详情数据接口
京东商品详情数据接口(JD.item_get)提供商品标题、价格、品牌、规格、图片等详细信息,适用于电商数据分析、竞品分析等。开发者需先注册账号、创建应用并申请接口权限,使用时需遵循相关规则,注意数据更新频率和错误处理。示例代码展示了如何通过 Python 调用此接口并处理返回的 JSON 数据。
|
2月前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。