爬虫的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实现)

爬虫的selenium 框架

爬虫之scrapy框架应用selenium

小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

小白学 Python 爬虫(27):自动化测试框架 Selenium 从入门到放弃(上)