浏览器自动化测试工具selenium——爬虫操作记录

selenium------是一款web自动化测试框架,其能模拟正常的用户操作,比如点击。但selenium并不是浏览器,没有执行js和解析html/css的能力,因此selenium需要和浏览器配合使用。

因为selenium可以模仿用户行为,因此selenium也常被用来作为爬虫解决方案。原因是随着技术的发展,网站技术变得越来越复杂,特别是动态网站技术,使用了多种反爬技术,比如请求头限制,ip限制,代码混淆,加密,接口验证等。

通过js逆向等逆向工程使得爬虫变得越来越困难,技术难度大;因此selenium配合浏览器就是一个好的选择,不管网站使用多少技术,我模拟用户的正常浏览操作行为总可以把,这样就可以直接绕过各种混淆,逆向等反爬技术。

但selenium既然是模仿正常用户的操作,那他就无法绕过一部分验证,那就是验证码或者其它客户端验证方式。

因此selenium也并不是完美的。

selenium使用起来很简单,但如果用来做爬虫需要一定的前后端开发经验,否则直接做爬虫会非常的困难。

初始化代码如下:

python 复制代码
# python 代码
# 引入selenium包
from selenium.webdriver import Chrome

# 创建一个浏览器对象, url为要爬取的网站地址
driver = webdriver.Chrome(options=opt)
driver.get("url")

driver发起请求之后,就可以获取到网页代码,和真实用户操作的结果没有什么不同;然后selenium就可以通过xpath,正则表达式等方式获取到页面节点。然后模拟用户操作,比如点击,输入用户,密码等。

python 复制代码
# 通过xpath语法,通过class或id等从网页中提取节点,
btn = driver.find_element(By.XPATH, '//*[@class="douyin-login__close" or contains(@class,"dy-account-close")]')

# 模拟用户点击
btn.click()

因此,selenium开发爬虫的难点不是技术问题,是经验问题,比如怎么通过xpath提到到目标节点。

最难的一点就是各种验证码,比如看图识字,输入验证数字等;最坑的就是一些滑块验证,有时会监听鼠标移动路径,但selenimu只是模拟用户点击没有办法监听鼠标移动,因此这种验证码没有什么好办法绕过。

所以,面对这种网站,最好的方式就是跳过前端页面,直接爬取其接口;但后端接口也会使用大量的反爬技术,比如用户身份验证,权限验证,加解密等。

总之,爬虫是一门技术和经验并重的工作,重要的是结果,不是过程;不论你用什么办法能拿到你想要的数据,那就是一个好的爬虫工程师,千万不要钻牛角尖。

当然,在最后提醒一下,爬虫技术是一门徘徊在法律边缘的技术,虽然法律没有禁止爬虫的存在,但如果用来爬取别人的私密数据,或者重要的企业数据,然后给企业造成损失,那么就有可能吃皇家饭。

因此,可以学习爬虫技术,但要注意爬虫技术的使用。

相关推荐
xaletry88825 分钟前
汽车动力转向器落锤冲击试验台
测试工具
可涵不会debug11 小时前
【文心索引】搜索引擎测试报告
数据库·功能测试·selenium·测试工具·搜索引擎·测试用例·postman
m0_6658151012 小时前
联核科技AGV无人叉车的应用场景有哪些?
人工智能·科技·机器人·自动化·自动驾驶
SNN_Ryan15 小时前
Facebook营销自动化—— Python脚本 + 代理IP实现内容高效分发
python·自动化·新媒体运营·ip·facebook
那片海还在吗18 小时前
Selenium 中 ActionChains 支持的鼠标和键盘操作设置及最佳实践
selenium·测试工具·计算机外设
测试199818 小时前
Jmeter进行http接口测试详解
自动化测试·软件测试·网络协议·测试工具·jmeter·http·测试用例
zhgjx_chen18 小时前
华为:Wireshark的OSPF抓包分析过程
测试工具·华为·wireshark
dingzd9518 小时前
Web3 中的智能合约:自动化与去信任化的力量
自动化·web3·智能合约·跨境电商·隐私保护·instagram
qq_白羊座1 天前
UI自动化:Python + Selenium4.6以前的版本 环境搭建
python·selenium·自动化
不爱学英文的码字机器1 天前
用Python实现自动化测试:从单元测试到API验证
python·测试工具·单元测试