上回我们说到Python大星
通过Ajax数据爬取头条主页文章
不知各位英兄豪姐有没有发现
有些Ajax 接口含有很多加密参数
参数规律讳莫如深
Ajax数据抓取障碍重重
终于到了这个时刻
Python大星祭出《Se至尊神诀》
竟然没听说《Se至尊神诀》
传说在“爬虫大陆”上
当时主流的商业化自动工具
其名曰:“QTP mercury”
mercury 本意是化学元素汞,俗称“水银”
直到有一天...
雷电交加、风雨大作
天地为之昏暗
有蛟龙自天外破窗而入
盘旋于产床之上
已而,魔丸降生
取名曰:“Selenium”
Selenium本意是“硒”
“硒”--解毒神器
硒和重金属有很强的亲和力,在体内可结合形成无毒的金属硒蛋白
你不是mercury,很“汞”吗?
我用“硒”来对抗“汞”
作为开源的自动化工具
giao,giao,giao
欲学《Se至尊神诀》
三步奠基...
● 谷歌浏览器Chrome
Python大星的Chrome版本是
74.0.3729.108(正式版本) (64 位)
● 浏览器驱动ChromeDriver
ChromeDriver与Chrome版本对应参照表
可以看到ChromeDriver从2.46版本后,
和Chrome版本是“门当户对”
下载完
将解压后的chromedriver.exe文件放入
chrome文件路径
&
Python安装目录
图1
图2
配置环境变量:
我的电脑>属性>高级>环境变量
● 安装Selenium库
pip install selenium
试炼开始
看看你基础扎不扎实
运行代码后发现,会自动弹出一个 Chrome 浏览器
如果你还没看到这个页面...
● 声明浏览器browser对象
Selenium支持的浏览器如 Chrome、Firefox、Edge 等
● 访问页面
● 查找网页HTML节点
领悟部分《Se至尊神诀》
我们知道selenium能驱动浏览器完成各种操作
前提我们得找到这些节点
“对症下药”
我劝你“善良”
我劝你学点前端基础 >>>
HTML+CSS+JS 三件套
在《Se至尊神诀》中
获取HTML节点主要分2种情况
● 单节点
Python大星一般选择通用方法,比较灵活
find_element_by_id(id) 就等价于 find_element(By.NAME,name)
看源码
● 多节点
将element变为复数elements
返回list类型
find_elements_by_name(name) 就等价于 find_elements(By.NAME, name)
常见的浏览器交互场景
文本框输入
点击
清除文本框文本
在selenium下是如何实现的呢?
看Python大星小试牛刀
某些操作,selenium API 并没有提供
金无足赤,人无完人
但是!!!
它可以模拟运行JavaScript
实现竖向进度条滑动到底端