Phython新手做网页操作自动化

2023-10-31

先说一下背景和要实现的功能,前段时间给媳妇做一个工具,需要将excel内的内容分别对应填充到网页内的表单文本框和下拉框中,借此正好整理一下自己的制作步骤,当作笔记,大佬就不要做评价了,只为新入门的同僚做个参考。

1、安装phython开发工具,我用的是pycham社区版

2、下载chromedriver.exe工具,本次自动化操作以chrome浏览器为例。另外需要注意的的是浏览器版本一定要注意,下载好插件以后,将文件拷贝到main.py同目录下,这是我的目录结构,仅供参考。

 

3、开始开发

刚开始接触phython什么也不太懂,对什么import什么的都不明白,完全的小白,于是网站上搜索了一些例子,但是发现运行不了,下面的的import的一直有个红线,于是搜索发现需要安装插件。

selenium 是对应网页内的控件做选择的,具体的什么名字忘了

openpyxl 是操作Excel表格用的插件

import time
from selenium import webdriver
from openpyxl import load_workbook

操作步骤是:

 

 搜索 selenium 和 openpylx 安装以后就没有报错了。于是进行下一步,以下是代码:

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
time.sleep(3)

运行成功,自动启动网页并打开了百度的页面。

下一步就是要分析要进行的自动化内容。我这里是根据Excel的内容,分别对应填充到网页的表单内。

首先是读取表格的内容,代码如下:

# 工作簿名称
wb = load_workbook("excel的路径")
ws = wb.active
list_orders = []
list_row = []
for row in ws.rows:
    for col in row:
        list_row.append(col.value)
    list_orders.append(list_row)

mrn = ws.max_row
mcn = ws.max_column
while i < mrn:
   if ws.cell(row=i, column=14).value == noworder:
      odn = ws['T'+i].value
      zno = ws['AG'+i].value 
      phone = ws['AV'+i].value
      print("取到了")
      break
  else:
      print("下一行")
  i = i + 1

将excel的内容放到一个数组供后面使用。

接下来就是将数组内的信息对应到网页表单的字段内。这里就比较繁琐,需要分析html的每个控件根据不同的定位方式找到控件并赋值,每个插件的定位略有不通,可能是谷歌版本不一样,写法略有区别,我的代码是这样的

根据input的name值给文本赋值
driver.find_element('name', 'username').send_keys("admin")
根据class选择多选框
driver.find_elements("class name", "el-checkbox")[1].click()
根据placeholder定位文本框
driver.find_element('css selector', "[placeholder='纬度']").send_keys("36.122312")

每个插件略有不同,以上仅供参考。按照不同的方式定位并赋值以后,然后再定位到button,调用click方法,操作完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Phython新手做网页操作自动化 的相关文章

  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐