爬虫的selenium 框架
Posted xzqpy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫的selenium 框架相关的知识,希望对你有一定的参考价值。
selenium 与 Httpsession 中的 s.html.render 特别相似 关键是在于他更加的具体,可以支持多种浏览器,并且包括截图等功能
需要下载
解决方案:
https://www.cnblogs.com/zhaijiahui/p/8954304.html
下载连接
https://chromedriver.storage.googleapis.com/index.html
from selenium import webdriver import time d1=webdriver.Chrome(r"C:\\Users\\xzq\\Downloads\\chromedriver_win32 (1)\\chromedriver.exe") #浏览器内核的位置 d1.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d9bW79Rz&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F") d1.find_element_by_id("J_Quick2Static").click() time.sleep(3) d1.find_element_by_id("TPL_username_1").send_keys("扯淡灬孩子02547915") d1.find_element_by_id("TPL_password_1").send_keys("a13736784065") d1.find_element_by_id("J_SubmitStatic").click()
#滑动验证的问题
button = d1.find_element_by_id(‘nc_1_n1z‘)# 找到“蓝色滑块” action = webdriver.ActionChains(d1)# 实例化一个action对象 action.click_and_hold(button).perform()# perform()用来执行ActionChains中存储的行为 action.reset_actions() action.move_by_offset(280, 0).perform()# 移动滑块 action.release()
解决验证码无法输入的问题
请求图片的url 每次请求的图片都一样 直接给request 如果每次都不一致 1.实例化session 2.使用session 请求页面,获取验证码地址 3.发送session请求验证码,使用打码识别 4.使用session发送post 使用selenium 遇到验证码: selenium请求登陆页面,同时拿到验证码地址 获取登陆drive中的cookie,交给request处理识别 或者使用截图工具找出验证码 用打马识别
获取文本和属性
1.先定位到元素,然后调用.text 或者get_attributee
find_element 返回的是一个element 如果没有就会报错
find_elemants 返回是的一个列表,没有就是空列表
解决find_element 失败的方法
可能页面中有iframe,frame
需要先调用
d1.switch_to.frame(“framae_name”)
然后再取输入内容
把浏览器内核的cookie交给session中的cookie操作
明明有这个元素未获得
原因:还没加载完就获取
使用ORC识别验证码
1.安装PIL (python3 中没有直接的PIL 版本供应下载 可以先使用 Pillow)
2.导入from PIL import Image
import pytesseract from PIL import Image img=Image.open("0014076720724832de067ce843d41c58f2af067d1e0720f000[1].jpg") print(pytesseract.image_to_string(img))
如果报错请参考(原因是因为没有安装ORC)下载后在pytesseract的tesseract_cmd下添加tesserac.exet路径即可
无法加载中文
添加系统变量
详细https://blog.csdn.net/wang_hugh/article/details/80760940
下载方法https://blog.csdn.net/ocean35/article/details/82942382
以上是关于爬虫的selenium 框架的主要内容,如果未能解决你的问题,请参考以下文章
小白学 Python 爬虫(40):爬虫框架 Scrapy 入门基础对接 Selenium 实战
为爬虫框架构建Selenium模块DSL模块(Kotlin实现)