最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)疫情通定時(shí)自動(dòng)填寫(xiě)功能(附代碼)

 更新時(shí)間:2020年05月27日 09:20:25   作者:其實(shí)還好啦  
這篇文章主要介紹了Python實(shí)現(xiàn)疫情通定時(shí)自動(dòng)填寫(xiě)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

自疫情始,學(xué)校就要求學(xué)生每天在學(xué)校內(nèi)系統(tǒng)填寫(xiě)個(gè)人每日疫情相關(guān)情況,稱為疫情通。

但是,由于個(gè)人原因,出現(xiàn)了下圖情況。

記性太差,人又懶,于是決定用Python實(shí)現(xiàn)自動(dòng)化定時(shí)任務(wù)。

1、核心模塊

打開(kāi)IEChrome。

打開(kāi)網(wǎng)頁(yè)按下F12拿到請(qǐng)求頭和請(qǐng)求體。

(假裝此處有圖片)

Pycharm啟動(dòng)!

根據(jù)拿到的請(qǐng)求頭和請(qǐng)求體,完成核心代碼編寫(xiě)。

url = "https://xxcapp.xidian.edu.cn/ncov/wap/default/save"
headers = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
      'Accept': 'application/json, text/javascript, */*; q=0.01',
      'Accept-Language': 'zh-cn',
      'Accept-Encoding': 'gzip, deflate, br',
      'Host': 'xxcapp.xidian.edu.cn',
      'Origin': 'https://xxcapp.xidian.edu.cn',
      'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) '
             'Version/13.1 Safari/605.1.15',
      'Connection': 'keep-alive',
      'Referer': 'https://xxcapp.xidian.edu.cn/ncov/wap/default/index',
      'Content-Length': '2314',
      # Cookie是身份標(biāo)識(shí)
      'Cookie': 'Hm_lpvt_48b682d5d22a90111e44886b972e3268=1590108209; ' # Hm_lpvt_xxxxxxx 為當(dāng)前時(shí)間戳(秒)
      # Hm_lvt_xxx 為一串時(shí)間戳。最近的一次訪問(wèn)時(shí)間戳追加在后面,最多保留4個(gè)時(shí)間戳。可以通過(guò)關(guān)閉瀏覽器然后再訪問(wèn)相同頁(yè)面查看其cookie值來(lái)驗(yàn)證。
           'Hm_lvt_48b682a90111e46b9d4885d2272e3268=1590108209; UUkey=99cf86f295b522e264680402bf6b221e; '
           'Uqn3iPIDZBpD3wJU=vqtbQwSD1sjDM; eai-sess=prshbd3vo96po8i27a4mod1i67',
      'X-Requested-With': 'XMLHttpRequest',
      }

data = {
  'uid': '123671', 'date': str(datetime.date.today() - datetime.timedelta(days=1)).replace("-", ""),
  'tw': '3', # 體溫:第三項(xiàng),36.5-36.9
  'sfcxtz': '0', # 是否出現(xiàn)
  'sfyyjc': '0', # 是否醫(yī)院檢查
  'jcjgqr': '0', # 檢查結(jié)果確認(rèn)
  'sfjcbh': '0', # 是否接觸病患
  'sfcxzysx': '0', # 是否出現(xiàn)
  'address': '', 'area': '', 'province': '', # 地址
  'city': '', # 城市
  # 伽利略定位系統(tǒng)詳情
  'geo_api_info': '{"type":"complete","position":{"P":11.203296169705,"O":11.667691514757,"lng":11.667692,'
          '"lat":11.203296},"location_type":"html5","message":"Get ipLocation failed.Get geolocation '
          'success.Convert Success.Get address success.","accuracy":15,"isConverted":true,"status":1,'
          '"addressComponent":{"citycode":"0001","adcode":"123456","businessAreas":[],'
          '"neighborhoodType":"","neighborhood":"","building":"","buildingType":"","street":"",'
          '"streetNumber":"","province":"","city":"","district":"","township":""},'
          '"formattedAddress":"","roads":[],"crosses":[],"pois":[],'
          '"info":"SUCCESS"}',
  'created': str(int(time.time())), # 創(chuàng)建時(shí)間
  'sfzx': '0', # 是否在校 否
  'sfjcwhry': '0', # 是否接觸武漢人員 否
  'sfcyglq': '0', # 是否處于隔離期 否
  'sftjwh': '0', # 是否途徑武漢 否
  'sftjhb': '0', # 是否途徑湖北 否
  'fjsj': '0',
  'sfjchbry': '0', # 是否接觸湖北人員 否
  'sfsfbh': '0', # 是否
  'jhfjsftjwh': '0', # *****是否途徑武漢 否
  'jhfjsftjhb': '0', # *****是否途徑湖北 否
  'szsqsfybl': '0',
  'sfygtjzzfj': '0', # 是否
  'sfjcjwry': '0', # 是否接觸境外人員 否
  'id': '4393912',
  'ismoved': '0', # 與上次地點(diǎn)是否有不同
}
requests.post(url=url, data=data, headers=headers)

上述代碼已經(jīng)可以虛擬我們的提交能力了,但是還達(dá)不到自動(dòng)化需求。最終目標(biāo)是能夠放在Linux服務(wù)器上每日早晨自動(dòng)運(yùn)行一次,并接收到反饋。所以需要再加一個(gè)模塊,我選擇了郵件通知方式。

2、通知模塊

def sendEmail(message):
  msg_from = 'xxxxx@qq.com' # 發(fā)送方郵箱
  passwd = '' # 發(fā)送方郵箱的授權(quán)碼
  msg_to = 'xxxxx@qq.com' # 收件人郵箱

  subject = "疫情通" # 主題
  msg = MIMEText(message)
  msg['Subject'] = subject
  msg['From'] = msg_from
  msg['To'] = msg_to
  try:
    s = smtplib.SMTP_SSL("smtp.qq.com", 465) # 郵件服務(wù)器及端口號(hào)
    s.login(msg_from, passwd)
    s.sendmail(msg_from, msg_to, msg.as_string())
    print('[' + str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) + "]郵件發(fā)送成功,郵件內(nèi)容:" + message)
  except s.SMTPException:
    print('[' + str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) + "]郵件發(fā)送失敗,郵件內(nèi)容:" + message)
  finally:
    s.quit()

此函數(shù)接收字符串為參,并將此字符串送至目標(biāo)郵箱。

那么核心代碼最后一行便改為

sendEmail(eval(requests.post(url=url, data=data, headers=headers).text)['m'])

代碼編寫(xiě)完畢,文末有完整版。接下來(lái)實(shí)現(xiàn)自動(dòng)化運(yùn)行。

3、自動(dòng)化模塊

Terminal啟動(dòng)!

將本py文件scp至服務(wù)器,然后在同目錄下創(chuàng)建output.log文件,用以記錄每日信息(考慮到郵件發(fā)送失敗的情況)。

編輯/etc/crontab,在最后的#上面加上下圖內(nèi)容,最后兩個(gè)分別是py文件和log文件的路徑,整行內(nèi)容表示的是在每天8:30以root身份自動(dòng)運(yùn)行右側(cè)命令。

4、最終效果

由下圖log文件內(nèi)容可知,2020-05-25早8時(shí)30分3秒完成此任務(wù),也就是說(shuō)此任務(wù)運(yùn)行一次需要三秒。

在郵箱中也可以看到已經(jīng)收到郵件。

5、完整代碼

import time
import requests
import smtplib
import datetime
from email.mime.text import MIMEText
def sendEmail(message):
  msg_from = 'xxxxx@qq.com' # 發(fā)送方郵箱
  passwd = '' # 發(fā)送方郵箱的授權(quán)碼
  msg_to = 'xxxxx@qq.com' # 收件人郵箱
  subject = "疫情通" # 主題
  msg = MIMEText(message)
  msg['Subject'] = subject
  msg['From'] = msg_from
  msg['To'] = msg_to
  try:
    s = smtplib.SMTP_SSL("smtp.qq.com", 465) # 郵件服務(wù)器及端口號(hào)
    s.login(msg_from, passwd)
    s.sendmail(msg_from, msg_to, msg.as_string())
    print('[' + str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) + "]郵件發(fā)送成功,郵件內(nèi)容:" + message)
  except s.SMTPException:
    print('[' + str(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) + "]郵件發(fā)送失敗,郵件內(nèi)容:" + message)
  finally:
    s.quit()
url = "https://xxcapp.xidian.edu.cn/ncov/wap/default/save"
headers = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
      'Accept': 'application/json, text/javascript, */*; q=0.01',
      'Accept-Language': 'zh-cn',
      'Accept-Encoding': 'gzip, deflate, br',
      'Host': 'xxcapp.xidian.edu.cn',
      'Origin': 'https://xxcapp.xidian.edu.cn',
      'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) '
             'Version/13.1 Safari/605.1.15',
      'Connection': 'keep-alive',
      'Referer': 'https://xxcapp.xidian.edu.cn/ncov/wap/default/index',
      'Content-Length': '2314',
      # Cookie是身份標(biāo)識(shí)
      'Cookie': 'Hm_lpvt_48b682d5d22a90111e44886b972e3268=1590108209; ' # Hm_lpvt_xxxxxxx 為當(dāng)前時(shí)間戳(秒)
      # Hm_lvt_xxx 為一串時(shí)間戳。最近的一次訪問(wèn)時(shí)間戳追加在后面,最多保留4個(gè)時(shí)間戳??梢酝ㄟ^(guò)關(guān)閉瀏覽器然后再訪問(wèn)相同頁(yè)面查看其cookie值來(lái)驗(yàn)證。
           'Hm_lvt_48b682a90111e46b9d4885d2272e3268=1590108209; UUkey=99cf86f295b522e264680402bf6b221e; '
           'Uqn3iPIDZBpD3wJU=vqtbQwSD1sjDM; eai-sess=prshbd3vo96po8i27a4mod1i67',
      'X-Requested-With': 'XMLHttpRequest',
      }
data = {
  'uid': '123671', 'date': str(datetime.date.today() - datetime.timedelta(days=1)).replace("-", ""),
  'tw': '3', # 體溫:第三項(xiàng),36.5-36.9
  'sfcxtz': '0', # 是否出現(xiàn)
  'sfyyjc': '0', # 是否醫(yī)院檢查
  'jcjgqr': '0', # 檢查結(jié)果確認(rèn)
  'sfjcbh': '0', # 是否接觸病患
  'sfcxzysx': '0', # 是否出現(xiàn)
  'address': '', 'area': '', 'province': '', # 地址
  'city': '', # 城市
  # 伽利略定位系統(tǒng)詳情
  'geo_api_info': '{"type":"complete","position":{"P":11.203296169705,"O":11.667691514757,"lng":11.667692,'
          '"lat":11.203296},"location_type":"html5","message":"Get ipLocation failed.Get geolocation '
          'success.Convert Success.Get address success.","accuracy":15,"isConverted":true,"status":1,'
          '"addressComponent":{"citycode":"0001","adcode":"123456","businessAreas":[],'
          '"neighborhoodType":"","neighborhood":"","building":"","buildingType":"","street":"",'
          '"streetNumber":"","province":"","city":"","district":"","township":""},'
          '"formattedAddress":"","roads":[],"crosses":[],"pois":[],'
          '"info":"SUCCESS"}',
  'created': str(int(time.time())), # 創(chuàng)建時(shí)間
  'sfzx': '0', # 是否在校 否
  'sfjcwhry': '0', # 是否接觸武漢人員 否
  'sfcyglq': '0', # 是否處于隔離期 否
  'sftjwh': '0', # 是否途徑武漢 否
  'sftjhb': '0', # 是否途徑湖北 否
  'fjsj': '0',
  'sfjchbry': '0', # 是否接觸湖北人員 否
  'sfsfbh': '0', # 是否
  'jhfjsftjwh': '0', # *****是否途徑武漢 否
  'jhfjsftjhb': '0', # *****是否途徑湖北 否
  'szsqsfybl': '0',
  'sfygtjzzfj': '0', # 是否
  'sfjcjwry': '0', # 是否接觸境外人員 否
  'id': '4393912',
  'ismoved': '0', # 與上次地點(diǎn)是否有不同
}
sendEmail(eval(requests.post(url=url, data=data, headers=headers).text)['m'])

總結(jié)

到此這篇關(guān)于Python實(shí)現(xiàn)疫情通定時(shí)自動(dòng)填寫(xiě)功能(附代碼)的文章就介紹到這了,更多相關(guān)Python疫情通自動(dòng)填寫(xiě)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解分布式系統(tǒng)中如何用python實(shí)現(xiàn)Paxos

    詳解分布式系統(tǒng)中如何用python實(shí)現(xiàn)Paxos

    提到分布式算法,就不得不提 Paxos 算法,在過(guò)去幾十年里,它基本上是分布式共識(shí)的代 名詞,因?yàn)楫?dāng)前最常用的一批共識(shí)算法都是基于它改進(jìn)的。比如,F(xiàn)ast Paxos 算法、 Cheap Paxos 算法、Raft 算法、ZAB 協(xié)議等等。
    2021-05-05
  • Pytorch實(shí)驗(yàn)常用代碼段匯總

    Pytorch實(shí)驗(yàn)常用代碼段匯總

    這篇文章主要介紹了Pytorch實(shí)驗(yàn)常用代碼段匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python對(duì)象與引用的介紹

    Python對(duì)象與引用的介紹

    今天小編就為大家分享一篇關(guān)于Python對(duì)象與引用的介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • 詳解Python如何使用audioflux處理音頻數(shù)據(jù)

    詳解Python如何使用audioflux處理音頻數(shù)據(jù)

    Python的audioflux庫(kù)是一個(gè)處理音頻數(shù)據(jù)的強(qiáng)大工具,旨在提供簡(jiǎn)單而強(qiáng)大的接口,用于音頻信號(hào)處理、分析和合成,下面就跟隨小編一起來(lái)學(xué)習(xí)一下它的具體使用吧
    2023-06-06
  • python列表倒序的幾種方法(切片、reverse()、reversed())

    python列表倒序的幾種方法(切片、reverse()、reversed())

    本文主要介紹了python列表倒序的幾種方法(切片、reverse()、reversed()),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python實(shí)現(xiàn)桌面壁紙切換功能

    python實(shí)現(xiàn)桌面壁紙切換功能

    這篇文章主要為大家詳細(xì)介紹了python requests+pywin32實(shí)現(xiàn)桌面壁紙切換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python3實(shí)現(xiàn)字符串的全排列的方法(無(wú)重復(fù)字符)

    python3實(shí)現(xiàn)字符串的全排列的方法(無(wú)重復(fù)字符)

    這篇文章主要介紹了python3實(shí)現(xiàn)字符串的全排列的方法(無(wú)重復(fù)字符),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn安裝與基本使用教程

    Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn安裝與基本使用教程

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)庫(kù)scikit-learn安裝與基本使用,較為詳細(xì)的介紹了機(jī)器學(xué)習(xí)庫(kù)scikit-learn的功能、原理、基本安裝與簡(jiǎn)單使用方法,需要的朋友可以參考下
    2018-06-06
  • pycharm 使用心得(二)設(shè)置字體大小

    pycharm 使用心得(二)設(shè)置字體大小

    pycharm 是很好的一個(gè)IDE,在windows下,和macOS下,都能很好的運(yùn)行。唯一缺點(diǎn)是啟動(dòng)慢。默認(rèn)字體太小,在mac下,需要瞪大24K氪金狗眼才能看清。 為了保護(hù)好眼睛,我們需要把字體調(diào)整大一些:
    2014-06-06
  • 使用Python+Appuim 清理微信的方法

    使用Python+Appuim 清理微信的方法

    這篇文章主要介紹了使用Python+Appuim 清理微信,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01

最新評(píng)論

鹿泉市| 浑源县| 雅安市| 萝北县| 辛集市| 信阳市| 迭部县| 招远市| 维西| 盐池县| 桐城市| 盐山县| 射阳县| 文化| 全南县| 响水县| 文水县| 阿坝县| 邵武市| 开江县| 调兵山市| 忻城县| 邹平县| 富顺县| 宜君县| 巩义市| 洪江市| 腾冲县| 五原县| 永济市| 丹巴县| 高州市| 张掖市| 昆山市| 曲麻莱县| 辛集市| 宁南县| 兴仁县| 北辰区| 盱眙县| 新竹市|