爬虫学习笔记 - selenium 模块学习

安装driver

  • chromdriver 需要对应chrome版本
  • 提示权限不足,sudo chmod +x phantomjs
  • chromdriver --version
  • phantomjs --version

定位元素的方法

  • driver.find_element #返回第一个元素,如果没有报错
  • driver.find_elements #返回包含元素的列表,如果没有返回空列表

获取属性和文本的方法

  • 获取文本:element.text
  • 获取属性值:element.get_attribute(“href”)

验证码的识别

  • url地址不变,验证码不变
    • 请求验证码的地址,获取响应,进行识别
  • url地址不变,验证码变化
    • 请求验证码,发送登录请求,需要带上统一套cookie,才能够都能路成功,对应可以使用requests.Session()来实现
  • selenium处理验证码
    • 带上selenium的driver中的cookie来请求验证码
    • selenium截屏,获取验证

selenium如何使用

  • 功能:请求页面,提取数据,能够执行其中的js
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(url) #发送请求
driver.quit()

selenium定位元素的方法

  • find_element 返回元素,没有会报错
  • find_elements 返回包含元素的列表,没有就是空列表
  • find_elements_by_xpath()
  • find_elements_class_name()
  • find_elements_by_id()
  • element.text #元素获取文本
  • element.get_attribute(“href”) #元素获取属性值

selenium如何处理frame

  • driver.switch_to.frame(id,name,element)

练习代码


from selenium import webdriver
import time

driver = webdriver.Chrome()  # 实例化 dirver
# 调整浏览器窗口大小
driver.maximize_window()  # 最大化
# driver.set_window_size(1920, 1080)  # 自定义大小

driver.get("http://www.baidu.com")  # 打开浏览器,进入请求的页面

driver.find_element_by_id("kw").send_keys("表情包")  # 找到对应的标签,输入内容
driver.find_element_by_id("su").click()  # 找到对应的标签,点击事件

# driver.save_screenshot("./q.png")  # 页面截屏

# print(driver.page_source)  # 获取网页源码

# print(driver.get_cookies())  # 取出所有的 cookie
cookies = {cookie["name"]: cookie["value"] for cookie in driver.get_cookies()}  # 将 cookie 构建成字典
print(cookies)

print(driver.current_url)  # 获取当前 url

time.sleep(5)
# driver.close()  # 退出当前页面
driver.quit()  # 关闭浏览器


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值