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
原文地址:https://www.cnblogs.com/xzqpy/p/11332918.html
时间: 2024-11-01 12:21:56