摘要:之前說要每周寫的。。問題描述在每天比如點到點之間定時自動登陸網站,簽到實現思路使用抓包工具先登陸一遍,把請求的地址,等信息都拿到。可以生成一個按鍵小精靈的,用計劃任務定時執行。主要目的是找到每個發送請求的和信息。
之前說要每周寫的。。然后最近忙著畢業就一直沒動。>.<感覺月更都困難了。
問題描述在每天比如10點到11點之間定時自動登陸網站,簽到
實現思路使用fiddler抓包工具先登陸一遍,把請求的地址,header等信息都拿到。
使用python寫一個腳本,模擬瀏覽器向服務器發送登陸,簽到請求
使用批處理bat來寫幾句話,隨機在一小時內運行python腳本
使用Windows自帶的計劃任務,定時每日10點運行bat腳本
另外,之前不想那么麻煩寫代碼,還去找了一個叫做按鍵精靈的軟件來模擬執行。不過那個軟件是模擬鼠標和鍵盤,所以執行的時候會有界面出現,而且你的鼠標和鍵盤不能動,所以后來放棄了。如果覺得這個麻煩也可以試試那個。可以生成一個按鍵小精靈的exe,用計劃任務定時執行。這個軟件也很邪教啊,還可以自動截圖。
實現過程 一、fiddler抓包這個直接下載然后上手做就可以了,打開工具,然后進行正常的登陸,每一個請求的過程都有。主要目的是找到每個發送請求的url和header信息。
比如我練習網站的登陸請求發送的url是http://XXX.com/Home/Login/log...。
這個具體的url也可以用谷歌瀏覽器chrome進入審查元素去選取按鈕,簡陋一些的網站可以看到js代碼是怎么跳轉過去的。如果遇到一些按鈕點擊一次以后無法再點,可以用這個辦法找它的url。
二、python寫請求腳本這里用這里用python3寫的,這部分總結晚點寫:P
import urllib.request import urllib import gzip import http.cookiejar import time # generate request header, deal with cookie def getOpener(head): # deal with the Cookies cj = http.cookiejar.CookieJar() pro = urllib.request.HTTPCookieProcessor(cj) opener = urllib.request.build_opener(pro) header = [] for key, value in head.items(): elem = (key, value) header.append(elem) opener.addheaders = header return opener #encapsulate the header as the browser header = { "Connection": "Keep-Alive", "Accept-Language": "zh-CN", "Accept": "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*", "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)", "Accept-Encoding": "gzip, deflate", "X-Requested-With": "XMLHttpRequest", "Host": "http://XXX.com/", } url = "http://XXX.com/Home/Login/login_submit" opener = getOpener(header) id = "xxxx"#你的用戶名 password = "fddafda"#你的密碼,抓包是什么就輸什么,有時候是md5加密的 postDict = { "logname": id, "passwd": password, } #這里的post數據的json可以檢查fiddler的webform里會有。 postData = urllib.parse.urlencode(postDict).encode() op = opener.open(url, postData) data = op.read() print(data) #簽到 url = "http://XXX.com/index/index/sign/P/in" op = opener.open(url) data = op.read() print(data)三、bat調用python腳本
@echo off rem 這里就是先用cd命令轉到.py文件所在的地址 C: cd C:Windows rem 用random生成一個數字對3600秒取余得到一個一小時內的隨機秒數存在rd中 set /a rd=%random%%%3600 rem ping用于等待若干秒 ping -n %rd% 127.0.0.1 > nul python test.py rem 生成日志 set today=%date:~0,4%-%date:~5,2%-%date:~8,2% echo login at %today%_%time:~0,2%:%time:~3,2% >> E:LogFilelog%today%.txt exit
rem是注釋可以刪,python里面還有一個pythonw.exe調用這個可以完全不出現界面。如果命令行cmd里面沒有python,去環境變量path里面加一下python所在的地址。
總結實現這個小任務,讓我發現python的功能確實很大,而且可以用的庫也非常多。這里主要是在廖雪峰的python教程中查看的python基本的東西。然后搜了一個例子。模仿著做的。
另外,對前端的啟發也蠻大的。防止這些爬蟲去解析前端的信息,主要可以有以下措施:
對所有發布的網站中JS進行壓縮混淆加密
一些關鍵數據可以用圖片展示,增加一點爬取難度
登陸設置驗證碼和動態token
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44434.html
摘要:一介紹是一個用實現的基于騰訊協議的簡單機器人,可運行在和平臺下,所有代碼集成在一個文件中。三使用方法啟動在命令行輸入,或直接運行。操作機器人啟動后,用另外一個向本發送消息即可操作。 一、介紹 QQBot 是一個用 python 實現的、基于騰訊 SmartQQ 協議的簡單 QQ 機器人,可運行在 Linux 和 Windows 平臺下,所有代碼集成在一個?qqbot.py 文件中。 Q...
摘要:,大家好,很榮幸有這個機會可以通過寫博文的方式,把這些年在后端開發過程中總結沉淀下來的經驗和設計思路分享出來模塊化設計根據業務場景,將業務抽離成獨立模塊,對外通過接口提供服務,減少系統復雜度和耦合度,實現可復用,易維護,易拓展項目中實踐例子 Hi,大家好,很榮幸有這個機會可以通過寫博文的方式,把這些年在后端開發過程中總結沉淀下來的經驗和設計思路分享出來 模塊化設計 根據業務場景,將業務...
摘要:今天分享三個讀者推薦的項目。污點行為包括但不限于毀意向書毀兩方協定毀三方協定試用期裁員大量裁應屆生。地址歡迎關注公眾號逛逛,每天推薦一個好玩有趣的開源項目。推薦閱讀上有什么好玩的項目推薦個熱門電商項目女朋友讓我寫萬字檢討上個算法項目 十一假期一直在休息,好久沒更新文章了。今天分享三個讀...
閱讀 1987·2021-11-24 09:39
閱讀 984·2021-11-11 16:55
閱讀 1439·2021-10-09 09:43
閱讀 1421·2021-10-08 10:17
閱讀 1658·2021-08-25 09:41
閱讀 430·2019-08-30 13:02
閱讀 632·2019-08-29 15:14
閱讀 1010·2019-08-29 13:53