python爬虫selenium的使用及实战

系列文章目录

第一章 Python 爬虫之验证码平台的使用https://blog.youkuaiyun.com/Syhaswm/article/details/149564666?spm=1001.2014.3001.5501
第二章 Python 爬虫之selenium的使用(结合打码平台)


前言

这一章节将结合上一章(打码平台的使用)https://blog.youkuaiyun.com/Syhaswm/article/details/149564666?spm=1001.2014.3001.5501

来依靠selenium实现简单的自动化登陆


一、模拟登陆平台

可供使用的平台有很多,如专用测试平台(如Scrape Center)适合新手快速验证代码逻辑,实际网站(如B站)需遵守Robots协议,仅用于学习而非爬取数据。这里我们介绍https://api.houyu365.com/#/login来仅供学习,注意:文中不是真实的账户和密码,仅供参考。

二、使用步骤

1.引入库

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep
from selenium.webdriver.common.by import By
from basic_to_pit import base64_to_image #在下文中有介绍
from test02 import base64_api #在下文中有介绍

2.初始化

dr = webdriver.Chrome(service=Service(ChromeDriverManager().install())) #保持版本一致
dr.get("https://api.houyu365.com/#/login") #访问网址
dr.maximize_window() #窗口最大化
sleep(2) #停止两秒看效果

3.访问元素

按f12或者右键单击空白处,再点击检查(可能要稍等一会儿),

单击图中按钮,再移动到企业ID上并单击

这时就能找到该元素的位置

可以看到它的class是'el-input_inner'

再按ctrl+f查看它是否唯一

可以看到有五个匹配到的元素,我们查找它具体是第几个

最终找到它在第二个的位置,接下来编写代码,并向其输入ID

dr.find_elements(By.CLASS_NAME,'el-input__inner')[1].send_keys("xxxxx")  # 输入用户名
sleep(2)  # 等待2秒

因为它不唯一,所以我们用find_elements找到所有匹配的值,再通过索引来找到它,最后输入企业ID,找到账户和密码的方法同上,这里不再赘述,直接给代码

dr.find_elements(By.CLASS_NAME,'el-input__inner')[2].send_keys("wdnmd")  # 输入账户
sleep(2)  # 等待2秒
dr.find_elements(By.CLASS_NAME,"el-input__inner")[3].send_keys("syhaswm")  # 输入密码
sleep(2)  # 等待2秒

三.识别验证码

我们先找到验证码的位置

img后面就是验证码图片的位置,双击src后面的字符

可以看到双击后有一长串字符,这里我们需要用将这串字符转换为图片(因为它不是具体的地址,无法直接拿到),由于我们的目的是熟悉掌握selenium的自动化,所以不具体解释怎么转化,相关的转换代码网上一搜一大堆,我们直接给出代码。注意:若src后面是完整的url链接,直接获取图片并向打码平台传输即可,不用进行下面的转化步骤

import base64
from PIL import Image
from io import BytesIO

def base64_to_image(base64_string, output_filename):
    base64_string = base64_string.replace('data:image/png;base64,','')
    image_data = base64.b64decode(base64_string)
    image = Image.open(BytesIO(image_data))
    image.save(output_filename, format='PNG')
base64_string = 'data:image/png;base64,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'
file_name = 'python转的图片.jpg'
base64_to_image(base64_string, file_name)

base_string后面的值就是我们要转换的src中的字符串,file_name就是我们的图片名称,注意:这段代码是保存到basic_to_pic文件中的,我们刚才的代码是在主文件test03中保存的,并且这两个文件须在同一文件夹中,才能引用,若不清楚,可以看最后的完整代码。现在回到主文件test03中,我们先获取验证码元素

data = dr.find_element(By.CLASS_NAME,'login-code-img')  # 获取验证码图片元素

再将获取验证码的base64字符串,即src后面的字符串,然后命名验证码的图片名,最后调用basic_to_pic中的函数将其转换为图片。

base64_string = data.get_attribute('src')  # 获取验证码图片的base64字符串
save_file = 'bq.jpg'  # 设置验证码图片保存路径
base64_to_image(base64_string, save_file)  # 将base64字符串保存为图片

最后应用我们上一章https://blog.youkuaiyun.com/Syhaswm/article/details/149564666?spm=1001.2014.3001.5501

中讲的打码平台来识别验证码

result = base64_api(uname='xxx, pwd='xxx', img=save_file, typeid=7)  # 调用API识别

(uname和pwd中改为自己的账户名和密码即可)就能得到验证码中的内容

然后用相同方法找到输入框

dr.find_elements(By.CLASS_NAME,'el-input__inner')[4].send_keys(result)  # 输入识别结果

最后找到登陆的按钮

可以看到它是唯一的,直接点击即可

dr.find_element(By.CLASS_NAME,'login-submit').click()  # 点击登录按钮
sleep(10)  # 等待10秒

这样就完成了一次完整的登陆

未获得用户的企业信息说明我们的验证码是正确的,但由于信息是虚假的,所以截取的图片中它刷新了验证码,模拟登录成功。

四.源代码

1.主文件test03:

from selenium import webdriver  # 导入selenium的webdriver模块
from selenium.webdriver.chrome.service import Service  # 导入Chrome浏览器服务模块
from webdriver_manager.chrome import ChromeDriverManager  # 导入ChromeDriver自动管理器
from time import sleep  # 导入sleep用于延时
from selenium.webdriver.common.by import By  # 导入By用于元素定位
from basic_to_pit import base64_to_image  # 导入base64转图片函数
from test02 import base64_api  # 导入验证码识别API

dr = webdriver.Chrome(service=Service(ChromeDriverManager().install()))  # 启动Chrome浏览器
dr.get("https://api.houyu365.com/#/login")  # 打开登录页面
dr.maximize_window()  # 最大化浏览器窗口
sleep(2)  # 等待2秒

dr.find_elements(By.CLASS_NAME,'el-input__inner')[1].send_keys("xxxxx")  # 输入用户名
sleep(2)  # 等待2秒
dr.find_elements(By.CLASS_NAME,'el-input__inner')[2].send_keys("wdnmd")  # 输入密码
sleep(2)  # 等待2秒
dr.find_elements(By.CLASS_NAME,"el-input__inner")[3].send_keys("syhaswm")  # 输入验证码账号
sleep(2)  # 等待2秒

data = dr.find_element(By.CLASS_NAME,'login-code-img')  # 获取验证码图片元素
# print(data)  # 可选:打印图片元素信息
base64_string = data.get_attribute('src')  # 获取验证码图片的base64字符串
save_file = 'bq.jpg'  # 设置验证码图片保存路径
base64_to_image(base64_string, save_file)  # 将base64字符串保存为图片

result = base64_api(uname='xxx', pwd='xxx', img=save_file, typeid=7)  # 调用API识别
dr.find_elements(By.CLASS_NAME,'el-input__inner')[4].send_keys(result)  # 输入识别结果
dr.find_element(By.CLASS_NAME,'login-submit').click()  # 点击登录按钮
sleep(10)  # 等待10秒

2.test02(调用打码平台):


import base64
import json
import requests
# 一、图片文字类型(默认 3 数英混合):
# 1 : 纯数字
# 1001:纯数字2
# 2 : 纯英文
# 1002:纯英文2
# 3 : 数英混合
# 1003:数英混合2
#  4 : 闪动GIF
# 7 : 无感学习(独家)
# 11 : 计算题
# 1005:  快速计算题
# 16 : 汉字
# 32 : 通用文字识别(证件、单据)
# 66:  问答题
# 49 :recaptcha图片识别
# 二、图片旋转角度类型:
# 29 :  旋转类型
# 1029 :  背景匹配旋转类型 注意:中间小图传到image中,背景图传到imageback 中 imageback模仿image 添加
# 2029 :  背景匹配双旋转类型 注意:中间小图传到image中,背景图传到imageback 中  imageback模仿image 添加
#
# 三、图片坐标点选类型:
# 19 :  1个坐标
# 20 :  3个坐标
# 21 :  3 ~ 5个坐标
# 22 :  5 ~ 8个坐标
# 27 :  1 ~ 4个坐标
# 48 : 轨迹类型
#
# 四、缺口识别
# 18 : 缺口识别(需要2张图 一张目标图一张缺口图)
# 33 : 单缺口识别(返回X轴坐标 只需要1张图)
# 34 : 缺口识别2(返回X轴坐标 只需要1张图)
# 五、拼图识别
# 53:拼图识别
def base64_api(uname, pwd, img, typeid):
    with open(img, 'rb') as f:
        base64_data = base64.b64encode(f.read())
        b64 = base64_data.decode()
    data = {"username": uname, "password": pwd, "typeid": typeid, "image": b64}
    result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text)
    if result['success']:
        return result["data"]["result"]
    else:
        #!!!!!!!注意:返回 人工不足等 错误情况 请加逻辑处理防止脚本卡死 继续重新 识别
        return result["message"]
    return ""


if __name__ == "__main__":
    img_path = "D:\Google下载\生成验证码图片.png"
    result = base64_api(uname='xxx', pwd='xxx', img=img_path, typeid=7)
    print(result)
        

3.basic_to_pic(转换图片):

import base64
from PIL import Image
from io import BytesIO

def base64_to_image(base64_string, output_filename):
    base64_string = base64_string.replace('data:image/png;base64,','')
    image_data = base64.b64decode(base64_string)
    image = Image.open(BytesIO(image_data))
    image.save(output_filename, format='PNG')
base64_string = 'data:image/png;base64,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'
file_name = 'python转的图片.jpg'
base64_to_image(base64_string, file_name)

注意:三个文件须在同一文件夹中,否则无法相互调用,代码中的各种ID,密码也需该成自己的真实信息。


总结

这就是selenium的部分实战内容,若有不足之处请指出,希望能帮助到你,若有不明之处也可私信我帮你解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值