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": "***"
})

猜你喜欢

转载自www.cnblogs.com/tangda/p/10960984.html
今日推荐