返回

抢号多累啊,还不如写个脚本来自动化!

IOS

抢号多累啊,还不如写个脚本来自动化!

自动今年疫情后,杭州余杭区所有的儿童疫苗都需要网上预约后才能接种,余杭政府也提供了一个微信和支付宝小程序“健康余杭”进行取号预约。但是每次基本都是僧多粥少,如果遇到节假日放假后的几个工作日更是一号难求。每次给女儿预约疫苗接种都是一次战斗! 好在是线上系统和线下还未打通,每次去医院发现前面有几十号人的时候心里都默默的想,不如花点时间把抢号这个过程自动化一下!

说干就干,于是我开始着手研究“健康余杭”小程序的预约流程。发现预约流程很简单,首先需要登录小程序,然后选择要预约的疫苗,最后选择预约时间即可。

登录小程序可以通过微信或者支付宝扫码登录,我这里使用的是Python的Selenium库来模拟扫码登录。Selenium是一个用于Web自动化测试的库,它可以模拟浏览器的行为,比如点击链接、填写表单、获取页面元素等。

from selenium import webdriver

# 创建一个Chrome浏览器实例
driver = webdriver.Chrome()

# 访问“健康余杭”小程序登录页面
driver.get("https://health.yuhang.gov.cn/wechat/index.html")

# 等待二维码图片加载完成
time.sleep(5)

# 使用手机扫码登录
input("扫码登录后按回车继续")

登录成功后,需要选择要预约的疫苗。我这里使用的是Beautiful Soup库来解析HTML页面,并提取出疫苗信息。Beautiful Soup是一个用于解析HTML和XML文档的库,它可以帮助我们轻松地从HTML页面中提取出我们需要的数据。

from bs4 import BeautifulSoup

# 获取当前页面的HTML源码
html = driver.page_source

# 使用Beautiful Soup解析HTML源码
soup = BeautifulSoup(html, "html.parser")

# 提取出疫苗信息
vaccines = soup.find_all("div", class_="vaccine-item")

# 打印出疫苗信息
for vaccine in vaccines:
    print(vaccine.find("h3").text)

选择好疫苗后,需要选择预约时间。我这里使用的是Selenium库来模拟点击预约时间。

# 获取预约时间的元素
time_elements = driver.find_elements_by_xpath("//div[@class='time-item']")

# 循环遍历预约时间元素
for time_element in time_elements:
    # 如果预约时间可用,则点击该元素
    if time_element.get_attribute("class") == "time-item available":
        time_element.click()
        break

点击预约时间后,会弹出确认预约的对话框。我这里使用的是Selenium库来模拟点击确认按钮。

# 获取确认预约的按钮元素
confirm_button = driver.find_element_by_xpath("//button[@class='btn btn-primary']")

# 点击确认按钮
confirm_button.click()

至此,预约流程就完成了。我们只需要在预约时间带着女儿去医院接种疫苗即可。

结语

通过使用Python的Selenium库、Beautiful Soup库和WebDriver,我们成功地实现了“健康余杭”小程序的自动化预约。这不仅节省了我们的时间,也让我们避免了抢号的烦恼。

希望本文对您有所帮助。如果您有任何问题,请随时留言。