以前說要每週寫的。。而後最近忙着畢業就一直沒動。>.<感受月更都困難了。前端
在天天好比10點到11點之間定時自動登錄網站,簽到python
使用fiddler抓包工具先登錄一遍,把請求的地址,header等信息都拿到。web
使用python寫一個腳本,模擬瀏覽器向服務器發送登錄,簽到請求chrome
使用批處理bat來寫幾句話,隨機在一小時內運行python腳本json
使用Windows自帶的計劃任務,定時每日10點運行bat腳本瀏覽器
另外,以前不想那麼麻煩寫代碼,還去找了一個叫作按鍵精靈的軟件來模擬執行。不過那個軟件是模擬鼠標和鍵盤,因此執行的時候會有界面出現,並且你的鼠標和鍵盤不能動,因此後來放棄了。若是以爲這個麻煩也能夠試試那個。能夠生成一個按鍵小精靈的exe,用計劃任務定時執行。這個軟件也很邪教啊,還能夠自動截圖。服務器
這個直接下載而後上手作就能夠了,打開工具,而後進行正常的登錄,每個請求的過程都有。主要目的是找到每一個發送請求的url和header信息。
好比我練習網站的登錄請求發送的url是http://XXX.com/Home/Login/log...。cookie
這個具體的url也能夠用谷歌瀏覽器chrome進入審查元素去選取按鈕,簡陋一些的網站能夠看到js代碼是怎麼跳轉過去的。若是遇到一些按鈕點擊一次之後沒法再點,能夠用這個辦法找它的url。app
這裏用這裏用python3寫的,這部分總結晚點寫:Pdom
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)
@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:\LogFile\log%today%.txt exit
rem是註釋能夠刪,python裏面還有一個pythonw.exe調用這個能夠徹底不出現界面。若是命令行cmd裏面沒有python,去環境變量path裏面加一下python所在的地址。
實現這個小任務,讓我發現python的功能確實很大,並且能夠用的庫也很是多。這裏主要是在廖雪峯的python教程中查看的python基本的東西。而後搜了一個例子。模仿着作的。
另外,對前端的啓發也蠻大的。防止這些爬蟲去解析前端的信息,主要能夠有如下措施:
對全部發布的網站中JS進行壓縮混淆加密
一些關鍵數據能夠用圖片展現,增長一點爬取難度
登錄設置驗證碼和動態token