前言:事情是这样的,我所在的城市,有一个大学生免费住房一年的政策,但是这个床位有限,而且放床位的时间又不固定,抢的人又很多,总是很难蹲到。在机缘巧合之下,接触了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")



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