1. 程式人生 > >python3的爬蟲演算法(3) 實現自動登陸,簽到

python3的爬蟲演算法(3) 實現自動登陸,簽到

學完python不久覺得可以寫一個自動簽到的東西來省點力氣,而且也可以賺取積分。

一開始的文章是看的這個:http://blog.csdn.net/u283056051/article/details/49946981

上面分析的很清晰,我就不再多說了。不過該博文的程式碼有些許錯誤(我猜應該是網站有更改)

就是關於令牌(token)的問題。

開啟fiddle,登入後點開網頁對應的request的webforms,發現在email,password下面還有個叫token的東西(請自行百度)

那麼我們在傳遞postdata的時候就必須加上token,不然網站就會知道並不是使用者在操作,而是機器人,於是拒絕訪問。

解決方案很簡單,在postdata里加上token就好了:

id = "xxx"
ps = "xxxx"
post = {
    'email':id,
    'password':ps,
    'token':xxx',
    }//emailm,password,token的值都可以直接從fiddle裡面複製下來,
postData = urllib.parse.urlencode(post).encode()

完整程式碼:

import urllib
import urllib.request
import gzip
import http.cookiejar
import time def getOpener(head):
    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 def ungzip(data):
    try:
        print("正在解壓")
        data = gzip.decompress(data)
        print("解壓完畢")
    except :
        print("未經壓縮")
    return data header = {
    'Connection': 'Keep-Alive',
    'Accept-Language': 'zh-CN,zh;q=0.8',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
    'Accept-Encoding': 'gzip, deflate',
    'X-Requested-With': 'XMLHttpRequest',
    'Host': 'www.17sucai.com',
    } url = "http://www.17sucai.com/auth"
opener = getOpener(header) id = "
[email protected]
"
ps = "7c4a8d09ca3762af61e59520943dc26494f8941b"
post = {
    'email':id,
    'password':ps,
    'token':'cb3EAr1DiRNNtxDAKhBrMhE0hql1xauYBpdNmVhtKY4=',
    }
postData = urllib.parse.urlencode(post).encode()
op = opener.open(url,postData)
data = op.read()
data = ungzip(data) print(data) url = 'http://www.17sucai.com/member/signin'
op = opener.open(url)
data = op.read()
data = ungzip(data) print(data)

輸出結果是b'{"code":200,"day":1,"score":20}' 

code的值為200,並且有score,說明你簽到成功了

相關推薦

python3爬蟲演算法3 實現自動登陸簽到

學完python不久覺得可以寫一個自動簽到的東西來省點力氣,而且也可以賺取積分。 一開始的文章是看的這個:http://blog.csdn.net/u283056051/article/details/49946981 上面分析的很清晰,我就不再多說了。不過該博文的程式碼有

爬蟲計劃--實現新浪微博自動登入和釋出內容

  看到網上很多人都對新浪微博進行爬蟲,正巧公司也有外接的小活,因此本人也加入到爬蟲的佇列,開始研究新浪微博。歷時半個月,一路上遇到諸多阻礙,還好沒有放棄,最終實現了對新浪微博的自動登入以及自動釋出內容!下面本人分多個章節把我的爬蟲經歷以及方法分享給大家,最後會附上程式碼(

Python爬蟲學習3

collect nbsp pri div time urlparse links ews 是否 在慕課網學習並創建了一個簡單的爬蟲包,爬取百度百科相關詞條信息 程序中會用到第三方解析包(BeautifulSoup4),Windows環境下安裝命令:pip install B

Jenkins試用總結3 ----jenkins自動發送部署郵件

沒有 研究 tex RoCE 發送 water 使用 去掉 9.png 前兩篇已經基本可以達到使用jenkins的要求了,現在我們提交代碼jenkins就會幫你部署到服務器,這一篇主要學習jenkins把部署的結果發給用戶jenkins本身是自帶一個郵件發送的,不過我並沒有

Python爬蟲-速度3

Python爬蟲-速度(3) 文章目錄 Python爬蟲-速度(3) 前言 普通爬蟲 多程序提速 多執行緒提速 非同步協程提速 最後 018.11.11 Python爬蟲-速度(1

python3面向物件3私有屬性和方法以及訪問私有屬性和方法的方式

python3中的私有屬性和方法是以__兩個下劃線開頭的: class Woman(object): #定義一個woman類 def __init__(self,name): self.name = name #公有屬性 self

排序演算法3--直接插入排序InsertSort

介紹: 插入排序的工作原理是,對於每個未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。 越有序越快 步驟: 1.從第一個元素開始,該元素可以認為已經被排序 2.取出下一個元素,在已經排序的元素序列中從後向前掃描 3.如果被掃描的元素(已排序)大於新元

機器學習--k-近鄰演算法kNN實現手寫數字識別

這裡的手寫數字以0,1的形式儲存在文字檔案中,大小是32x32.目錄trainingDigits有1934個樣本。0-9每個數字大約有200個樣本,命名規則如下: 下劃線前的數字代表是樣本0-9的

資料結構與演算法3- C++ STL與java se中的vector

宣告:雖然本系列部落格與具體的程式語言無關。但是本文作者對c++相對比較熟悉,其次是java,所以難免會有視角上的偏差。舉例也大多是和這兩門語言相關。 上一篇部落格概念性的介紹了vector,我們有了大致的印象:vector不過就是看上去可以自增長的陣列麼。這篇部落格將稍微

線性規劃專題——SIMPLEX 單純形演算法——實現

實現的原理見: 線性規劃專題——SIMPLEX 單純形演算法(一) 線性規劃專題——SIMPLEX 單純形演算法(二) 線性規劃專題——SIMPLEX 單純形演算法(三)——示例、注意點 實現過程 重點是實現PIVOT 指定主元的高斯約旦消元,以及INITICIALSIMPLEX

資料結構與演算法3—— 佇列java

1 陣列實現的佇列 public class ArrayQueue { private String[] items; private int n=0; //陣列的大小 private int head

linux核心排程演算法3--多核系統的負載均衡

多核CPU現在很常見,那麼問題來了,一個程式在執行時,只在一個CPU核上執行?還是交替在多個CPU核上執行呢?LINUX核心是如何在多核間排程程序的呢?又是核心又是CPU核,兩個核有點繞,下面稱CPU處理器來代替CPU核。 實際上,如果你沒有對你的程序做過特殊處理的話,L

數組合並演算法Python實現

合併兩個有序陣列(列表) 函式功能:傳入兩個有序列表,返回一個合併好的(有序)列表 引數 :兩個有序列表 思路:將長度短的列表的每個元素依次比較(先比較兩個list的長度,參len(list1) >= len(list2),如果 list2 的某個值大於等於 list1 中

python3 爬蟲日記 將資料存到Mongodb

python版本:3.6.1 開發工具:PyCharm社群版,Anaconda3 資料庫:MongoDB 視覺化MongoDB工具:MongoVUE 1.開啟資料庫後,開啟MongoVUE使MongoDB視覺化。 2.用PyCharm編寫程式碼,爬取資料並儲存到資料庫中。

OpenCV 2.4.9 學習筆記3—— OpenCV自動為輸出陣列矩陣分配記憶體

  OpenCV大部分時候會為OpenCV方法中的輸出資料(方法的引數)自動分配記憶體,所以如果一個方法的引數有一個或者多個輸入陣列(cv::Mat 例項)和一些輸出陣列時,OpenCV會自動為輸出陣列分配記憶體空間或者重新分配記憶體空間,記憶體的大小和資料型別由輸入陣列決定。如果需要的話,這個方法會通過其他

濾波反投影重建演算法FBP實現及應用matlab

濾波反投影重建演算法實現及應用(matlab) 1. 濾波反投影重建演算法原理 濾波反投影重建演算法常用在CT成像重建中,背後的數學原理是傅立葉變換:對投影的一維傅立葉變換等效於對原影象進行二維的傅立葉變換。(傅立葉中心切片定理) CT重建演算法大致分為解析重建

圖論演算法3--- A*演算法求k短路

在一個有向圖中,如何求出前k短路,比較高效的演算法我們自然想到了A*演算法,這裡賦上程式碼,所有講解將放在程式碼註釋中: 如對A*有基礎性知識的疑問,請參考此文:A*搜尋演算法 import java.io.File; import java.io.IOException;

python3爬蟲初探之檔案儲存

接著上面的寫,抓取到網址之後,我們要把圖片儲存到本地,這裡有幾種方法都是可以的。   #-----urllib.request.urlretrieve----- import urllib.request imgurl = 'http://img.ivsky.com/

排序演算法3—優先佇列堆排序

本文主要討論基於二叉堆資料結構的優先佇列的實現以及衍生的堆排序 實現優先佇列還可以使用棧,佇列等資料結構,在此略 文章最後附有堆排序完整程式碼 優先佇列 1. 主要解決問題 有時候比不

機器學習實戰之k-近鄰演算法3---如何視覺化資料

關於視覺化: 《機器學習實戰》書中的一個小錯誤,P22的datingTestSet.txt這個檔案,根據網上的原始碼,應該選擇datingTestSet2.txt這個檔案。主要的區別是最後的標籤,作者原來使用字串‘veryLike’作為標籤,但是Python轉換會出現Val