irpas技术客

Python+Selenium帮我实现了免费住房一年的心路历程_Gill_Jack_selenium 免费

未知 4703

前言:事情是这样的,我所在的城市,有一个大学生免费住房一年的政策,但是这个床位有限,而且放床位的时间又不固定,抢的人又很多,总是很难蹲到。在机缘巧合之下,接触了selenium这个语言,就想着能不能利用这个语言写一个蹲守脚本,就不用每天蹲在那个网页面前。

必备工具:首先你要安装一个Python,这是python网站Welcome to Python.org进去下载

?下载完成之后,就无脑安装就好。

其次,你还要安装一个selenium,这个十分简单,在电脑的搜索栏搜索cmd弹出命令提示符,打开命令符,在里面输入pip install selenium 再按下回车就好了,他会自己下载安装,过程可能会失败毕竟是外网的,多试几次就好了

这样子就是安装成功的提示。 再安装一个Pycharm软件,用于书写代码,安装可以按照这篇文章步骤走(17条消息) pycharm安装教程,超详细_皮小孩ls的博客-CSDN博客_pycharm我还有遇到安装完pycharm之后,他识别不到selenium的问题,当时是参考这篇文章解决的,你们有遇到的话也可以参考下这篇文章,说不定可以解决。Selenium安装教程? 最后再安装一个Autoit,可以参考这个文章AutoIT的下载与安装它是为了解决自动上传材料的问题,准备好这些就可以开始敲代码了。

补充:为了保证测试环境,需要下载Google Chrome浏览器和一个插件,查看Google? Chrome版本:首先打开Google Chrome 浏览器,依次点击浏览器右上角的 三个点 - 帮助 - 关于 Google Chrome。然后打开这个chromedriver.storage.googleapis.com/index.html在里面找到自己的版本或者相近的版本插件,解压之后把chromedriver.exe放入python安装目录下的Scripts目录中。

import time import os from telnetlib import EC from selenium import webdriver from selenium.common import NoSuchElementException from selenium.webdriver.common.by import By from selenium.webdriver import ActionChains from time import sleep import unittest header={"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"} driver = webdriver.Chrome() driver.get("https://zph.fzrsrc.com/wap/index.php?c=login")#打开网页 driver.find_element(By.XPATH,"/html/body/div[2]/section/article/div[1]/ul/li[2]/a").click()#选择个人登录 driver.find_element(By.XPATH,"//*[@id='username']").send_keys("这边修改为自己的账号")#账号 driver.find_element(By.XPATH,"//*[@id='password']").send_keys("这边修改为自己的密码")#密码 sleep(5)#暂停五秒输入验证码 driver.find_element(By.XPATH,"/html/body/div[2]/section/article/div[2]/div/form/div[2]").click()#点击登录按钮 sleep(1)#等待跳转 driver.find_element(By.XPATH,"/html/body/div/ul[2]/li/a").click()#选择住宿申报 sleep(1)#等待跳转 driver.find_element(By.XPATH,"/html/body/div/ul/li[1]/a").click()#点击我要预约按钮 sleep(3) try: i = 0 while i >= 0: driver.refresh() driver.find_element(By.XPATH, '//*[@id="newjoblist"]/ul/a[4]/li/div[1]').click() nr = driver.find_element(By.XPATH, '//*[@id="newjoblist"]/ul/a[4]/li/div[1]').text test = driver.find_element(By.XPATH, "/html/body/div[7]").text i += 1 print("点击" + str(i) + "次" + nr + test) sleep(2) except NoSuchElementException: driver.find_element(By.XPATH, "//*[@id='main']/div/div/div[1]/div/form/div/ul[3]/li[1]/div").click() # 点击上传身份证 os.startfile(r"D:\住宿申请材料\1.exe")#路径需要修改到你存放材料的盘 sleep(1) driver.find_element(By.XPATH, "//*[@id='main']/div/div/div[1]/div/form/div/ul[3]/li[2]/div").click() # 点击上传反面 os.startfile(r"D:\住宿申请材料\2.exe")#路径需要修改到你存放材料的盘 sleep(1) driver.find_element(By.XPATH, "//*[@id='main']/div/div/div[1]/div/form/div/ul[4]/li[1]/div").click() #上传学信证明 os.startfile(r"D:\住宿申请材料\3.exe")#路径需要修改到你存放材料的盘 sleep(1) driver.find_element(By.XPATH, '//*[@id="main"]/div/div/div[1]/div/form/div/ul[4]/li[2]/div').click() #上传八闽健康码 os.startfile(r"D:\住宿申请材料\4.exe")#路径需要修改到你存放材料的盘 sleep(1) driver.find_element(By.XPATH, '//*[@id="main"]/div/div/div[1]/div/form/div/ul[4]/li[3]/div').click() #上传通行码 os.startfile(r"D:\住宿申请材料\5.exe")#路径需要修改到你存放材料的盘 driver.find_element(By.XPATH, "//*[@id='statusPicker']").click() sleep(0.5) driver.find_element(By.XPATH, "/html/body/div[3]/div[1]/button[2]").click() driver.find_element(By.XPATH, "//*[@id='jobsPicker']").click() sleep(0.5) driver.find_element(By.XPATH, "/html/body/div[2]/div[1]/button[2]").click() driver.find_element(By.XPATH, "//*[@id='orderPicker']").click() sleep(0.5) driver.find_element(By.XPATH, "/html/body/div[4]/div[1]/button[2]").click() driver.find_element(By.XPATH,"//*[@id='main']/div/div/div[1]/div/form/div/div").click()

首先,需要输入在账号密码那块,修改为自己的账号和密码,然后需要自己输入验证码,这个步骤没办法自动。需要手动进行输入,输入完成之后。等页面跳转到这里,需要手动ctrl+鼠标滚轮对页面进行缩放至33%,之后就可以全自动不管他了,等待官方放床位吧。

?补充:这里补充一下,AutoIT的用法,需要修改一些地方,在安装AutoIT后,需要打开这个输入一些代码段,里面的路径和文件名需要修改成你自己的。生成.au3文件,由于官方需要的材料比较多,所以就需要多生成几个.au3文件。再利用这个软件打包成exe文件,这些软件在安装好AutoIT之后就都有的,可以在电脑的开始那边查找到。

ControlFocus("文件上传","","Edit1") WinWait("[CLSAA:#32770]","",10) ControlSetText("打开","","Edit1","C:\住宿申请材料\sfz-z.jpg") ControlClick("打开","","Button1")

?

以上这些操作做完之后,就可以解放双手了,愉快的玩耍去了,以上的教程就到这里。这篇文章只作为学习交流使用,切勿利用相关技术做些违法的事,有什么不懂的可以留言,我看到会回复的。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #selenium #免费