草庐IT

Selenium实现网页自动签到的Python脚本-win11

独白_1996 2023-04-05 原文

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

本文用于记录在win11上使用python和selenium网页自动化工具,实现网页自动签到。


提示:以下是本篇文章正文内容,下面案例可供参考

一、准备工作

下载安装Python和PyCharm软件。
Python下载地址:https://www.python.org/getit
PyCharm下载地址:https://www.jetbrains.com/zh-cn/pycharm/download/#section=windows
注意:一般pycharm自带selenium包,无需重新下载。

1.验证python是否安装成功

1.1调用成功

下载完成之后打开cmd,输入python,出现版本号则安装成功(如下图)。

1.2调用失败

若显示 “'python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”大概率是因为安装python后没有设置环境变量,设置环境变量的方法如下:鼠标右击‘此电脑’→属性→高级系统设置→环境变量→见下图:
注意:step4是python的安装目录。step5是python的脚本目录,添加后就可以在cmd中直接调用该目录中的工具,例如直接在cmd中调用pip工具如下图:

2.配置pycharm

安装好pycharm后,对pycharm进行的网络设置和python路径配置。

2.1网络设置

在使用pycharm安装拓展包时,默认从国外服务器下载更新数据,速度慢不稳定经常无法下载更新。这里需要把pycharm的HTTP proxy设置成Auto-detect proxy settings自动检测代理模式。

(注:需要自备梯子)

2.2python路径配置

按下图所示步骤操作,点击step3选择add,点击step4选择python的安装目录。
注:如果找不到python的安装目录,打开cmd输入where python,如下图:

3.查看selenium是否已安装

3.1方法一,用pycharm查看

打开pycharm,点击File→settings,如下图:

发现列表内已经有selenium,点击cancel,关闭当前窗口。
如果列表中没有selenium,点击+,进行添加,如下图:

安装成功后,会在窗口底部显示绿色字样。如果安装失败,请查看2.1网络设置

3.2方法二,用cmd查看

方法二:打开cmd,使用pip show selenium 指令查看,如下图:
表示selenium已存在,且版本号为4.2.0,关闭当前窗口。
如果没有selenium,可使用 pip install selenium 进行安装,如下图:

安装成功后,会在最后一行显示successfully installed selenium等字样。
如果安装失败,使用pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com指令。
注:由于网络原因,每次使用pip都要输入很长一段指令,可以通过创建pip配置文件解决。
1.打开C盘,C:\Users\Administrator目录下创建pip文件夹,
2.在pip文件夹下新建pip.ini文件,内容为:
[global]
trusted-host=pypi.douban.com
index-url=http://pypi.douban.com/simple/

配置方法引用于 https://blog.csdn.net/zzzzxqa/article/details/107435758

其他常用的镜像源地址:
阿里云:http://mirrors.aliyun.com/pypi/simple/
清华:https://pypi.tuna.tsinghua.edu.cn/simple

4.下载安装浏览器驱动

selenium可以操控多款浏览器,包括谷歌,火狐等,要用哪个浏览器就装哪个浏览器的驱动。
这里使用Chrome浏览器,查看浏览器版本信息:

打开驱动网站https://registry.npmmirror.com/binary.html?path=chromedriver/,下载和浏览器的版本号对应或者接近的驱动,解压后放入python路径下的Scripts文件夹中。


二、代码部分

1.敲入代码

代码如下:

from selenium import webdriver
import time

# 找到插件的路径,使用它驱动操作
driver = webdriver.Chrome()

# 填入签到网页
driver.get('https://du****.dev/')

# 在username和Password后面输入账号密码
username = "172****@qq.com"
Password = "1234****"
driver.find_element_by_id('email').send_keys(username)
driver.find_element_by_id('passwd').send_keys(Password)

# 登录
driver.find_element_by_xpath('//*[@id="formLogin"]/div[3]/div/div/span/button').click()

#设置Selenium Webdriver的隐式等待,10内。
driver.implicitly_wait(10)

# 签到
driver.find_element_by_xpath('//*[@id="app"]/section/section/main/div/div[2]/div/div/div/div[2]/div[3]/div/div/button[1]').click()

#等待2秒后,自动关闭窗口
time.sleep(2)
driver.close()

2.相关资料

Selenium with Python中文翻译文档:https://selenium-python-zh.readthedocs.io/en/latest/
简书自如_大佬写的Selenium WebDriver教程:https://www.jianshu.com/p/1b63c5f3c98e


总结

迈向python的一小步!

有关Selenium实现网页自动签到的Python脚本-win11的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  3. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  4. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  5. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  6. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  7. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  8. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  10. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

随机推荐