IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python - 根据xls的账密自动登录指定的网页,并获取对应的input内的值 -> 正文阅读

[Python知识库]Python - 根据xls的账密自动登录指定的网页,并获取对应的input内的值

前提:
1.Python是3.9版本
2.anaconda 3安装好后比较方便
3.import的库必须都pip install过
4.本文仅供自己学习使用,请勿随意爬取他人网站,造成的不良后果,本人概不负责
5.秉承开源精神,但转载请注明出处
6.谷歌驱动器下载地址:http://chromedriver.storage.googleapis.com/index.html(安装了他,程序才能调起谷歌浏览器)

代码如下,根据自己运行环境情况调整代码内部分参数

from PIL import Image
# 确保已安装必要的第三方库
import requests
# 操作操作系统
import os
# ddddocr是验证码识别OCR工具
import ddddocr
from selenium import webdriver
from selenium.webdriver.support.ui import Select
# 导入操作xls的插件
import xlrd, xlwt, xlutils.copy
# from xlutils.copy import copy
import time
from datetime import datetime

# 打开xls
data = xlrd.open_workbook(r"/Users/Desktop/foo.xls")
# copy_data = copy(data)
# 写Excel
table = data.sheets()[1] # 打开第一张表
# 获取全部的行数
nrows = table.nrows

workbook = xlwt.Workbook(encoding='utf-8')
sheet1 = workbook.add_sheet(u"new", cell_overwrite_ok = True)
# xlwt_sheet = copy_data.get_sheet(1) #获取sheet对象
 # 循环逐行打印
for i in range(nrows):
    # 获取账号:
    if i == 0:
        continue
    # 账号是xls中记录的账号
    username = str(table.cell_value(i,1))
    password = username[-5:]

    # 指定浏览器为chrome,需先把selenium的chromeDriver放在python安装目录
    driver=webdriver.Chrome()
    # 输入自己想访问的网站http://xxx.html
    driver.get(r'http://xxxx/index.html')
    time.sleep(0.3)

    headers = {
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66'
    }
    # 窗口最大化,加载完毕会耗费几秒钟,请耐心等待
    driver.maximize_window()
    time.sleep(0.3)

    # 输入账号 j_username为input的name值
    driver.find_element_by_xpath('//*[@name="username"]').send_keys(username)

    # 输入密码
    driver.find_element_by_xpath('//*[@name="password"]').send_keys(password)

    # 点选验证码输入框,生成验证码图片
    driver.find_element_by_xpath('//*[@name="veryCode"]').click()
    time.sleep(0.5)

    # 截取当前网页变成图片,并存储到固定位置
    driver.save_screenshot('/Users/Desktop/xxx/1.png')

    #获取验证码的对象
    yzm_btn = driver.find_element_by_id('imgObj')

    # 通过验证码对象获取坐标
    loc = yzm_btn.location
    size = yzm_btn.size
    # 计算缩放比例
    left = loc['x']*2 # 计算左边界
    top = loc['y']*2  # 计算上边界
    right = (loc['x'] + size['width'])*2  # 计算右边界
    bottom = (loc['y'] + size['height'])*2  # 计算下边界
    # 将上下左右边界值放到元组中(注意顺序:左 上 右 下)
    local = (left, top, right, bottom)

    # 使用PIL模块对页面图片进行再次截图(获取验证码图片),将验证码图片保存
    pic = Image.open('/Users/Desktop/xxx/1.png')
    newimg = pic.crop(local)
    newimg.save('/Users/Desktop/xxx/zym.png')

    with open('/Users/Desktop/xxx/zym.png', 'rb') as f:
        img_bytes = f.read()

    ocr = ddddocr.DdddOcr()
    ocrCode = ocr.classification(img_bytes)
    # 写入识别的验证码值
    driver.find_element_by_xpath('//*[@name="veryCode"]').send_keys(ocrCode.upper())

    # 输入完毕,点击确认按钮。
    driver.find_element_by_class_name('NormalSubmit').click()
    time.sleep(0.5)
    # 判断验证码识别的对不对
#     try:
#         alert_element = driver.switch_to.alert
#         alert_element.accept()
#         print(alert_element)
#     #把异常消息赋予一个"ex"变量
#     except Exception as ex:
#         print(ex)
    # 跳转到指定的URL
    driver.get(r"http://xxx.html/二级页面")
    time.sleep(1)
    mobile = driver.find_element_by_xpath('//*[@name="mobile"]')
    find_mobile = mobile.get_attribute("value")
    sheet1.write(i, 1, username)
    sheet1.write(i, 2, find_mobile)
    driver.quit()
    workbook.save("/Users/Desktop/zzz.xls")

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:01:43  更:2022-05-06 11:02:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:31:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码