selenuim模块的使用 解析库
selenium:
是自动化测试工具,我们可以用它来进行爬虫。
可以驱动浏览器,执行自定义好的任务。
可以执行js代码
执行速度慢,效率低。
一般用于做登录的认证
基本选择器:
find_element_by_id() # 根据id查找标签
find_element_by_class_name() # 根据class查找标签
find_element_by_link_text() # 根据链接文本查找标签
find_element_by_partail_link_text() # 链接文本模糊查询
find_element_by_css_selector() # 根据属性选择器查找元素
find_element_by_xpath()
- / 从根开始查找
- // 从根开始查找所有子标签 (重点使用)
- * 找所有
- .找当前标签
- @href 查找标签属性
- 打开浏览器开发者模式,鼠标右击copy xpath
//*[@id="zh-recommend-list"]/div[1]/h2/a
//*[@id="zh-recommend-list"]/div[1]/div[2]/div[2]/div/img
用户交互操作
ActionChains # 动作链接
- 点击并按住某个标签
ActionChains(driver).click_and_hold(标签).perform()
- 拖拽某个标签
ActionChains(driver).drag_and_drop(标签).perform()
- 移动标签
ActionChains(driver).move_by_offset(X, Y).perform()
- 释放动作链
ActionChains(driver).release().perform()
前进后退
forward()
back()
执行js代码
- 弹窗
js = '''
alert('tank')
'''
driver.execute_script(js)
- 滑动滚轮
js = '''
window.scrollTo(0, 下滑滚动距离(px作为单位))
'''
暴力破解用户登录
破解的前提是目标网站登录成功后保存用户的token或session信息到浏览器中。
- 先把Default文件夹删除
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data
- 去登录获取登录后的token或session键值对
- add_argument()
profile_directory = r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'
options.add_argument(profile_directory)
- 添加cookies信息
往目标网站发送请求
隐式等待
driver.add_cookies({
'name': "**",
"value": "***"
})
selenuim模块的使用 解析库的更多相关文章
- 爬虫模块介绍--Beautifulsoup (解析库模块,正则)
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...
- 爬虫----爬虫解析库Beautifulsoup模块
一:介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...
- 03 解析库之Beautifulsoup模块
Beautifulsoup模块 一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式 ...
- python爬虫解析库之Beautifulsoup模块
一 介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会 ...
- 网络爬虫之Selenium模块和Xpath表达式+Lxml解析库的使用
实际生产环境下,我们一般使用lxml的xpath来解析出我们想要的数据,本篇博客将重点整理Selenium和Xpath表达式,关于CSS选择器,将另外再整理一篇! 一.介绍: selenium最初是一 ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- 爬虫 解析库re,Beautifulsoup,
re模块 点我回顾 Beautifulsoup模块 #安装 Beautiful Soup pip install beautifulsoup4 #安装解析器 Beautiful Soup支持Pytho ...
- 解析库之re,Beautifulsoup
本篇导航: 介绍 基本使用 遍历文档树 搜索文档树 总结 re模块在之前的python进阶中有讲过不再做过多的阐述,本篇为BeautifulSoup库的分析 20.collections模块和 ...
- 【Python爬虫】BeautifulSoup网页解析库
BeautifulSoup 网页解析库 阅读目录 初识Beautiful Soup Beautiful Soup库的4种解析器 Beautiful Soup类的基本元素 基本使用 标签选择器 节点操作 ...
随机推荐
- Bootstrap的本地引入
今天用前端框架时选择了Bootstrap,然后东西都下好了本地就是引入不进去. 查了一下发现必须jquery要在BootStrap之前引入,然后我更改了引入顺序,发现还是不行 <script s ...
- mysql delete from left 多表条件删除
DELETE n from news n LEFT JOIN news2 d ON n.id=d.id WHERE d.id IS null
- nofollow标签的作用 nofollow标签添加方法
这篇文章主要介绍了nofollow标签的作用 nofollow标签添加方法,需要的朋友可以参考下 nofollow标签的作用 nofollow标签添加方法 模拟搜狗蜘蛛 nofollow标签 ...
- Python 进阶_生成器 & 生成器表达式
目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...
- java知识点拾遗:)
一篇有用的java基础知识总结http://www.cnblogs.com/xuwujing/p/8638329.html 枚举:http://blog.csdn.net/qq_27093465/ar ...
- 关于函数lower_bound()如何使用的问题
这个函数是c++ STL里自带的函数,应该需要引用头文件#include<iostream> 功能:在一个有序的序列中查找可以将value(一个变量)放在队列里面而不会引起序列长度变化,单 ...
- HBase 中加盐之后的表如何读取:Spark 篇
在 <HBase 中加盐之后的表如何读取:协处理器篇> 文章中介绍了使用协处理器来查询加盐之后的表,本文将介绍第二种方法来实现相同的功能. 我们知道,HBase 为我们提供了 hbase- ...
- [题解]Shorten IPv6 Address-模拟(2019牛客多校第六场B题)
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题意: 您将获得一个IPv6地址,该地址是128位二进制字符串.请根据以下规则确定其最短的表示: 以十六进 ...
- HDU3449_Consumer
这个是一个背包的变形题,很值得仔细体味 大致题意: 这个比普通背包多一个限制:再选每一类物品之前必须要先购买一个篮子来装,篮子有一定的价格,其他就和背包是一样的了 思路: 为了能够体现篮子的价值,我们 ...
- Redis 系列(04-2)Redis原理 - 内存回收
目录 Redis 系列(04-2)Redis原理 - 内存回收 Redis 系列目录 1. 过期策略 1.1 定时过期(主动淘汰) 1.2 惰性过期(被动淘汰) 1.3 定期过期 2. 淘汰策略 2. ...