基于Github Action的定时HITsz疫情上报脚本,开箱即用

Overview

HITsz Daily Report

基于 GitHub Actions 的「HITsz 疫情系统」访问入口 定时自动上报脚本,开箱即用。

感谢 @JellyBeanXiewh 提供原始脚本和 idea。
感谢 @bugstop 对脚本进行重构并新增 Easy Connect 校内代理访问。

使用方法

  1. Fork 仓库
  2. 设置仓库的 Actions Secrets 如何设置?
    添加用户名 USERNAME 和密码 PASSWORD ,以及可选的 GRADUATINGAPI_KEY
    Name Value
    USERNAME HITsz 统一身份认证用户名(学号)
    PASSWORD HITsz 统一身份认证密码
    GRADUATING 毕业班请设为 1 ,非毕业班学生请留空(不设置)
    API_KEY 微信推送的 sckey 如何申请?,不需要请留空(不设置)
  3. 开启 GitHub Actions 如何开启?
  4. 每天早上 7:00 23:00 UTC 定时自动运行
    如果填写 API_KEY ,即可在微信上收到运行结果推送(由 Server 酱提供)
    或者你可以打开 GitHub Actions 执行的全局邮件通知 如何开启?,包括成功或失败信息

Change Log

参阅 Releases 列表。

You might also like...
Comments
  • 2021.9.15脚本执行失败

    2021.9.15脚本执行失败

    执行log

    2021-09-15 00:40:13,420 - INFO - 非毕业班学生,微信提醒开启,VPN 开启。
    2021-09-15 00:40:18,444 - INFO - 认证系统登录成功。
    2021-09-15 00:40:18,955 - CRITICAL - 上报失败!其他错误:Expecting value: line 2 column 1 (char 1)
    2021-09-15 00:40:20,827 - INFO - 微信提醒消息已发送。
    Traceback (most recent call last):
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 236, in <module>
        main(arguments)
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 214, in main
        module_id = r.student_report_check()
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 143, in student_report_check
        result = response.json()
      File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/site-packages/requests/models.py", line 910, in json
        return complexjson.loads(self.text, **kwargs)
      File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/json/__init__.py", line 346, in loads
        return _default_decoder.decode(s)
      File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/json/decoder.py", line 337, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/opt/hostedtoolcache/Python/3.9.6/x64/lib/python3.9/json/decoder.py", line 355, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 248, in <module>
        raise ReportException(report_msg)
    __main__.ReportException: 上报失败!其他错误:Expecting value: line 2 column 1 (char 1)
    Error: Process completed with exit code 1.
    

    可能是由于疫情上报系统启用了自动定位所致?

    bug working on it 
    opened by lizbaka 7
  • 【Action 执行失败】登陆失败!原因:无可用代理。

    【Action 执行失败】登陆失败!原因:无可用代理。

    错误信息如下

    Run python report.py "$USERNAME" "$PASSWORD" -g="$GRADUATING" -k="$API_KEY" -p
    2021-10-06 23:08:39,621 - INFO - 非毕业班学生,微信提醒关闭,VPN 开启。
    2021-10-06 23:10:48,911 - ERROR - HTTPSConnectionPool(host='xgsm.hitsz.edu.cn', port=443): Max retries exceeded with url: /zhxy-xgzs/xg_mobile/shsj/common (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe9c8a4ab20>: Failed to establish a new connection: [Errno 110] Connection timed out'))
    2021-10-06 23:10:48,912 - WARNING - 开启代理,将在 2 秒后重试。
    2021-10-06 23:15:13,103 - ERROR - 登陆失败!原因:无可用代理。
    Traceback (most recent call last):
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connection.py", line 174, in _new_conn
        conn = connection.create_connection(
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/util/connection.py", line 96, in create_connection
        raise err
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/util/connection.py", line 86, in create_connection
        sock.connect(sa)
    TimeoutError: [Errno 110] Connection timed out
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connectionpool.py", line 699, in urlopen
        httplib_response = self._make_request(
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connectionpool.py", line 382, in _make_request
        self._validate_conn(conn)
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connectionpool.py", line 1010, in _validate_conn
        conn.connect()
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connection.py", line 358, in connect
        conn = self._new_conn()
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connection.py", line 186, in _new_conn
        raise NewConnectionError(
    urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fe9c8a4ab20>: Failed to establish a new connection: [Errno 110] Connection timed out
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
        resp = conn.urlopen(
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/connectionpool.py", line 755, in urlopen
        retries = retries.increment(
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/urllib3/util/retry.py", line 574, in increment
        raise MaxRetryError(_pool, url, error or ResponseError(cause))
    urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='xgsm.hitsz.edu.cn', port=443): Max retries exceeded with url: /zhxy-xgzs/xg_mobile/shsj/common (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe9c8a4ab20>: Failed to establish a new connection: [Errno 110] Connection timed out'))
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 214, in main
        r.student_login()
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 104, in student_login
        response = self.session.get(url_sso, proxies=self.proxies)
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/sessions.py", line 555, in get
        return self.request('GET', url, **kwargs)
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
        resp = self.send(prep, **send_kwargs)
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
        r = adapter.send(request, **kwargs)
      File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/adapters.py", line 516, in send
        raise ConnectionError(e, request=request)
    requests.exceptions.ConnectionError: HTTPSConnectionPool(host='xgsm.hitsz.edu.cn', port=443): Max retries exceeded with url: /zhxy-xgzs/xg_mobile/shsj/common (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fe9c8a4ab20>: Failed to establish a new connection: [Errno 110] Connection timed out'))
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 249, in <module>
        main(arguments)
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 224, in main
        r.switch_proxies(r.student_login)
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 97, in switch_proxies
        raise ReportException.LoginError("无可用代理。")
    __main__.LoginError: 无可用代理。
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 254, in <module>
        raise ReportException(report_msg)
    __main__.ReportException: 登陆失败!原因:无可用代理。
    Error: Process completed with exit code 1.
    
    opened by BurgessX 2
  • 最近还是一直运行失败

    最近还是一直运行失败

    Run python report.py "$USERNAME" "$PASSWORD" -g="$GRADUATING" -k="$API_KEY" -p python report.py "$USERNAME" "$PASSWORD" -g="$GRADUATING" -k="$API_KEY" -p shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} env: pythonLocation: /opt/hostedtoolcache/Python/3.9.7/x64 LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.9.7/x64/lib USERNAME: *** PASSWORD: *** GRADUATING: API_KEY: 2021-09-26 01:52:30,374 - INFO - 非毕业班学生,微信提醒关闭,VPN 开启。 2021-09-26 01:52:35,486 - INFO - 认证系统登录成功。 2021-09-26 01:52:36,028 - CRITICAL - 上报失败!其他错误:Expecting value: line 2 column 1 (char 1) Traceback (most recent call last): File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 236, in main(arguments) File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 214, in main module_id = r.student_report_check() File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 143, in student_report_check result = response.json() File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/site-packages/requests/models.py", line 910, in json return complexjson.loads(self.text, **kwargs) File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/json/init.py", line 346, in loads return _default_decoder.decode(s) File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/opt/hostedtoolcache/Python/3.9.7/x64/lib/python3.9/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/home/runner/work/HITsz-daily-report/HITsz-daily-report/report.py", line 248, in raise ReportException(report_msg) main.ReportException: 上报失败!其他错误:Expecting value: line 2 column 1 (char 1) Error: Process completed with exit code 1.

    opened by 45153 0
Releases(v1.0)
  • v1.0(May 5, 2021)

    已经稳定运行1个月,发布首个正式版。

    功能列表

    • 每日定时新增记录并填写
    • 可选是否为毕业班学生
    • 消息通知:目前支持 微信推送(由 Server 酱 提供,也可手动开启 GitHub Actions 执行的全局邮件通知 如何开启?

    Change log:

    • 修复一系列bug + 代码重构
    • 新增 毕业班 选项 #8 #4
    • 由于疫情上报系统限制内网访问,因而接入了Easy Connect #7
    Source code(tar.gz)
    Source code(zip)
一些爬虫相关的签名、验证码破解

cracking4crawling 一些爬虫相关的签名、验证码破解,目前已有脚本: 小红书App接口签名(shield)(2020.12.02) 小红书滑块(数美)验证破解(2020.12.02) 海南航空App接口签名(hnairSign)(2020.12.05) 说明: 脚本按目标网站、App命

XNFA 90 Feb 09, 2021
News, full-text, and article metadata extraction in Python 3. Advanced docs:

Newspaper3k: Article scraping & curation Inspired by requests for its simplicity and powered by lxml for its speed: "Newspaper is an amazing python li

Lucas Ou-Yang 12.3k Jan 07, 2023
Web-Scraping using Selenium Master

Web-Scraping using Selenium What is the need of Selenium? Some websites don't like to be scrapped and in that case you need to disguise your webscrapi

Md Rashidul Islam 1 Oct 26, 2021
A high-level distributed crawling framework.

Cola: high-level distributed crawling framework Overview Cola is a high-level distributed crawling framework, used to crawl pages and extract structur

Xuye (Chris) Qin 1.5k Dec 24, 2022
Unja is a fast & light tool for fetching known URLs from Wayback Machine

Unja Fetch Known Urls What's Unja? Unja is a fast & light tool for fetching known URLs from Wayback Machine, Common Crawl, Virus Total & AlienVault's

Sheryar 10 Aug 07, 2022
Minimal set of tools to conduct stealthy scraping.

Stealthy Scraping Tools Do not use puppeteer and playwright for scraping. Explanation. We only use the CDP to obtain the page source and to get the ab

Nikolai Tschacher 88 Jan 04, 2023
Get-web-images - A python code that get images from any site

image retrieval This is a python code to retrieve an image from the internet, a

CODE 1 Dec 30, 2021
Screenhook is a script that captures an image of a web page and send it to a discord webhook.

screenshot from the web for discord webhooks screenhook is a script that captures an image of a web page and send it to a discord webhook.

Toast Energy 3 Jun 04, 2022
This is a module that I had created along with my friend. It's a basic web scraping module

QuickInfo PYPI link : https://pypi.org/project/quickinfo/ This is the library that you've all been searching for, it's built for developers and allows

OneBit 2 Dec 13, 2021
A web crawler script that crawls the target website and lists its links

A web crawler script that crawls the target website and lists its links || A web crawler script that lists links by scanning the target website.

2 Apr 29, 2022
Async Python 3.6+ web scraping micro-framework based on asyncio

Ruia 🕸️ Async Python 3.6+ web scraping micro-framework based on asyncio. ⚡ Write less, run faster. Overview Ruia is an async web scraping micro-frame

howie.hu 1.6k Jan 01, 2023
Web scrapping

Project Setup Table of Contents Project Setup Table of Contents Run project locally Install Requirements Run script Run project locally Install Requir

Charles 3 Feb 04, 2022
Universal Reddit Scraper - A comprehensive Reddit scraping command-line tool written in Python.

Universal Reddit Scraper - A comprehensive Reddit scraping command-line tool written in Python.

Joseph Lai 543 Jan 03, 2023
UsernameScraperTool - Username Scraper Tool With Python

UsernameScraperTool Username Scraper for 40+ Social sites. How To use git clone

E4crypt3d 1 Dec 20, 2022
Web Crawlers for Data Labelling of Malicious Domain Detection & IP Reputation Evaluation

Web Crawlers for Data Labelling of Malicious Domain Detection & IP Reputation Evaluation This repository provides two web crawlers to label domain nam

1 Nov 05, 2021
A powerful annex BUBT, BUBT Soft, and BUBT website scraping script.

Annex Bubt Scraping Script I think this is the first public repository that provides free annex-BUBT, BUBT-Soft, and BUBT website scraping API script

Md Imam Hossain 4 Dec 03, 2022
基于Github Action的定时HITsz疫情上报脚本,开箱即用

HITsz Daily Report 基于 GitHub Actions 的「HITsz 疫情系统」访问入口 定时自动上报脚本,开箱即用。 感谢 @JellyBeanXiewh 提供原始脚本和 idea。 感谢 @bugstop 对脚本进行重构并新增 Easy Connect 校内代理访问。

Ter 56 Nov 27, 2022
Find thumbnails and original images from URL or HTML file.

Haul Find thumbnails and original images from URL or HTML file. Demo Hauler on Heroku Installation on Ubuntu $ sudo apt-get install build-essential py

Vinta Chen 150 Oct 15, 2022
让中国用户使用git从github下载的速度提高1000倍!

序言 github上有很多好项目,但是国内用户连github却非常的慢.每次都要用插件或者其他工具来解决. 这次自己做一个小工具,输入github原地址后,就可以自动替换为代理地址,方便大家更快速的下载. 安装 pip install cit 主要功能与用法 主要功能 change 将目标地址转换为

35 Aug 29, 2022
Library to scrape and clean web pages to create massive datasets.

lazynlp A straightforward library that allows you to crawl, clean up, and deduplicate webpages to create massive monolingual datasets. Using this libr

Chip Huyen 2.1k Jan 06, 2023