推广 热搜:   公司  企业  中国  快速    上海  行业  未来  设备 

爬虫之selenium

   日期:2024-12-30     移动:http://fabua.ksxb.net/mobile/quote/5193.html

由于requests模块不能执行js,有的页面内容,我们在浏览器中可以看到,但是请求下来没有。

selenium模块:模拟操作浏览器,完成人的行为。

selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。

模块安装:


下载驱动

驱动浏览器需要下载相应的驱动,谷歌要下谷歌的驱动,火狐要下火狐的驱动,并且版本要与当前浏览器对应。

这里我选择谷歌浏览器,首先查看当前谷歌浏览器的版本:

版本:

下载驱动,地址:CNPM Binaries Mirror (npmmirror.com),一定要下载对应的版本驱动,比如我谷歌浏览器版本为103.0.5060.134,就要下103.0.5060.134的驱动

下载对应操作系统即可。

导入模块:


初始化(打开浏览器):



在地址栏输入地址:


关闭标签:


关闭浏览器:




操作浏览器页面中的标签。

1.搜索标签

新版本:by=根据什么查找,value=查找的值

  • find_element(by, value):找第一个
  • find_elements(by, value):找所有
by的参数 含义 By.ID 根据标签id属性查找 By.link_TEXT 根据a标签的文字查找 By.PARTIAL_link_TEXT 根据a标签的文字模糊匹配 By.TAG_NAME 根据标签名查找 By.CLASS_NAME 根据标签class属性查找 By.NAME 根据标签name属性查找 By.CSS_SELECTOR 根据css选择器查找 By.XPATH 根据xpath查找

老版本


2.点击标签


3.向输入框中写内容


4.清空


举例:打开百度搜索'博客园':



程序操作页面非常快,所以在取每个标签的时候,标签可能没有加载好,取标签时就会报错,所以需要设置等待时间。

如果标签找不到,就会等待,还找不到就会报错:



标签对象调用 含义 标签对象.location 标签所在位置 标签对象.size 标签大小(高宽) 标签对象.id 标签id号(随机给的),不是id属性 标签对象.tag_name 标签名 标签对象.get_attribute('属性') 标签属性值


执行js用途:

  1. 普通滑屏,打开新标签
  2. 可以执行js代码,别人网站的变量,函数,都可以拿到并执行

滚动条到最底部


打开新标签



浏览器打开了多个选项卡,需要切换时:



browser.window_handles[0]代表第一个选项卡
browser.window_handles[1]代表第二个选项卡



浏览器前进:


浏览器后退:



不显示的打开浏览器的图形化界面,还能获取数据




XPath 是一门在 XML 文档中查找信息的语言。

表达式 描述 nodename 选取此标签的所有子标签。如:div,选取div标签下的子标签 / 找当前路径下的标签 // 找当前路径子子孙孙下的标签 . 表示当前路径 .. 表示上一次 @ 选取属性。

举例:

表达式 描述 //* 所有标签 //head 所有head标签 //div/a 所有div标签下的a标签 //a[@class="a1"] 所有class属性为'a1'的a标签 /div 所有最外层的div标签 //head/text() 所有head标签的文本内容 //div/a[1] div标签下的第一个a标签 //div/a[contains(@class,"li")] 多个属性要用contains

网页中打开F12,找到标签,右键-->复制-->复制 Xpath,把值用在代码中即可。




由于有时候程序操作浏览器过快,有些标签会找不到等一些情况会出现报错,这时候可以用异常处理:



获取浏览器所有cookie:


登录博客园并保存cookie:


如果标签不好找出来,可以打开F12,找到标签位置,复制css选择器:

通过cookie达成登录效果



模拟按住鼠标拖动的效果,或者是在某个标签上的某个位置点击的效果,主要用来做验证码的破解(滑动验证码)。

导入:


初始化:得到动作链对象


添加动作的方法:


执行动作:上述方法需要语句执行动作


实战:

方式一:基于同一个动作链串行执行



方式二:不同的动作链,每次移动的位移都不同



简单的数字字母组合可以使用图像识别(python 现成模块),但是成功率不高,所以可以使用第三方打码平台(破解验证码平台),花钱,把验证码图片给它,它给你识别完,返回给你。

超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大 (chaojiying.com)

超级鹰开发文档:


用超级鹰破解超级鹰验证码并登录:

本文地址:http://fabua.ksxb.net/quote/5193.html    海之东岸资讯 http://fabua.ksxb.net/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号