Linux快捷指南 / 杂谈 / 爬虫实现 · 2020年12月24日 0

利用服务器定时自动填报Daycheck(逃

完整代码就不po了哈…

服务器装的centos7(不要问我为什么不是Ubuntu…),不过其实Linux彼此在平时的使用中也都是大同小异。

源码文件还是老python了,主要就是在服务器设置定时运行。俺们这个check烦人的很,一天三次。

主要是crontab这个玩意格式两天不写就忘

crontab -e   # 先打开crontab

和vim一样,i启动编辑模式,esc和:wq保存退出


格式如下:

5个时间参数+command

5个参数自左向右:分、时、天、月、周

这里command注意要加上绝对路径,比如python,即便之前可以直接调用也要加上绝对路径。随便举个例子:

0 8 * * * /usr/bin/python /usr/Demos/Daycheck/xxx.py

用python3每天上午8点00分执行xxx.py文件

不全的伪代码:

# -*- coding: UTF-8 -*-

import json
import requests

if __name__ == '__main__':

    data_raw = {
        "sfzx": "1",
        "tw": "1",
        "area": "\a",
        "city": "",
        "province": "",
        "address": "",
        "geo_api_info": "",
        "sfcyglq": "0",
        "sfyzz": "0",
        "qtqk": "",
        "askforleave": "0"
    }

    # Login
    conn = requests.Session()
    result = conn.post(
        url="https://XXXXXXXXXXXXX",
        data={'username': uname, 'password': upswd}
    )
    if "账号或密码错误" in result.text:
        print('Failed to login.', result.status_code)
        conn.close()
        exit()


    # Post
    result = conn.post(
        url="https:XXXXXXXXXXXXX",
        data=data_raw
    )
    if result.status_code != 200:
        print("Network Error.", result.status_code)
        conn.close()
        exit()


    # Result
    rjson = json.loads(result.text)
    print(rjson['m'])
    conn.c

听说后台其实能看出来是不是自动填报的,等我考完试试着伪装一下iphone,顺便加上个Email通知功能,出现问题向我汇报,到时候大概率代码也要改一改。