亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python爬蟲實現(xiàn)自動登錄、簽到功能的代碼

 更新時間:2020年08月20日 09:28:32   作者:u283056051  
這篇文章主要介紹了Python爬蟲實現(xiàn)自動登錄、簽到功能的代碼,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

        更新 2016/8/9:最近發(fā)現(xiàn)目標網(wǎng)站已經(jīng)屏蔽了這個登錄簽到的接口(PS:不過我還是用這個方式賺到了將近一萬點積分·····)

       前幾天女朋友跟我說,她在一個素材網(wǎng)站上下載東西,積分總是不夠用,積分是怎么來的呢,是每天登錄網(wǎng)站簽到獲得的,當然也能購買,她不想去買,因為偶爾才會用一次,但是每到用的時候就發(fā)現(xiàn)積分不夠,又記不得每天去簽到,所以就有了這個糾結(jié)的事情。怎么辦呢,想辦法唄,于是我就用python寫了個小爬蟲,每天去自動幫她簽到掙積分。廢話不多說,下面就講講代碼。

       我這里用的是python3.4,使用python2.x的朋友如果有需要請繞道查看別的文章。

       工具:Fiddler

       首先下載安裝Fiddler,這個工具是用來監(jiān)聽網(wǎng)絡請求,有助于你分析請求鏈接和參數(shù)。

       打開目標網(wǎng)站:http://www.17sucai.com/,然后點擊登錄

       好了,先別急著登錄,打開你的Fiddler,此時Fiddler里面是沒有監(jiān)聽到網(wǎng)絡請求的,然后回到頁面,輸入郵箱和密碼,點擊登錄,下面再到fiddler里面去看

    這里面的第一個請求就是你點擊登錄的網(wǎng)絡請求,點擊這個鏈接可以在右邊看到你的一些請求信息

然后點擊WebForms可以看到你的請求參數(shù),也就是用戶名和密碼

下面我們有代碼來實現(xiàn)登錄功能

import urllib.request
import urllib
import gzip
import http.cookiejar
 
#定義一個方法用于生成請求頭信息,處理cookie
def getOpener(head):
 # deal with the Cookies
 <pre name="code" class="python"> 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('未經(jīng)壓縮, 無需解壓')
 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 = 'xxxxxxxxxxxxx'#你的用戶名
password = 'xxxxxxx'#你的密碼
postDict = {
  'email': id,
  'password': password,
}
 
postData = urllib.parse.urlencode(postDict).encode()
op = opener.open(url, postData)
data = op.read()
data = ungzip(data)
 
print(data)

好了,接下來清空一下你的Fiddler,然后運行這個程序,看一下你的Fiddler

你可以點擊這個鏈接,看看右邊的請求信息和你用瀏覽器請求的是不是一樣

下面是程序后代打印的信息

code=200表示登陸成功

解析來就需要獲取到簽到的url,這里你需要一個沒有簽到的賬號在網(wǎng)站中點擊簽到按鈕,然后通過Fiddler來獲取到簽到的鏈接和需要的信息。

然后點擊“簽到”,簽到成功后到Fiddler中查看捕捉到的url

點擊這個url可以在右邊查看訪問這個鏈接時所需要的頭信息和cookies神馬的,我們已經(jīng)登錄成功后直接使用cookies就行了,python對cookies的處理做好了封裝,下面是我的代碼中對cookies的使用

cj = http.cookiejar.CookieJar()
 pro = urllib.request.HTTPCookieProcessor(cj)
 opener = urllib.request.build_opener(pro)

下面是簽到成功返回的信息:code=200表示請求成功,day=1表示連續(xù)簽到一天,score=20表示獲得的積分數(shù)

下面放出完整代碼,當然,為了測試代碼簽到,你還需要你一沒有簽到過的賬號

import urllib.request
import urllib
import gzip
import http.cookiejar
 
 
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
 
def ungzip(data):
 try:  # 嘗試解壓
  print('正在解壓.....')
  data = gzip.decompress(data)
  print('解壓完畢!')
 except:
  print('未經(jīng)壓縮, 無需解壓')
 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 = 'xxxxxxx'
password = 'xxxxxxx'
postDict = {
  'email': id,
  'password': password,
}
 
postData = urllib.parse.urlencode(postDict).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)

相比登錄,簽到也就是在登錄完成后重新打開一個鏈接而已,由于我的賬號都已經(jīng)簽到過了,這里就不在貼運行代碼的圖 了。

接下來要做的就是在你電腦上寫個bat 腳本,再在“任務計劃”中添加一個定時任務就行了。

在此之前你還需要配置一下python的環(huán)境變量,這里就不在贅述了。

到此這篇關于Python爬蟲實現(xiàn)自動登錄、簽到功能的代碼的文章就介紹到這了,更多相關Python爬蟲實現(xiàn)自動登錄、簽到內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python tornado修改log輸出方式

    python tornado修改log輸出方式

    今天小編就為大家分享一篇python tornado修改log輸出方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python 序列化 pickle/cPickle模塊使用介紹

    Python 序列化 pickle/cPickle模塊使用介紹

    這篇文章主要介紹了Python 序列化 pickle/cPickle模塊使用介紹,需要的朋友可以參考下
    2014-11-11
  • Python底層封裝實現(xiàn)方法詳解

    Python底層封裝實現(xiàn)方法詳解

    這篇文章主要介紹了Python底層封裝實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型

    Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型

    這篇文章主要介紹了Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python3使用PyMysql連接mysql數(shù)據(jù)庫實例

    python3使用PyMysql連接mysql數(shù)據(jù)庫實例

    本篇文章主要介紹了python3使用PyMysql連接mysql數(shù)據(jù)庫實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 分布式爬蟲scrapy-redis的實戰(zhàn)踩坑記錄

    分布式爬蟲scrapy-redis的實戰(zhàn)踩坑記錄

    最近用scrapy-redis嘗試了分布式爬蟲,使用過程中也遇到了不少問題,下面這篇文章主要給大家介紹了關于分布式爬蟲scrapy-redis的實戰(zhàn)踩坑記錄,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • python?dowhy數(shù)據(jù)估計因果分析功能探索

    python?dowhy數(shù)據(jù)估計因果分析功能探索

    這篇文章主要為大家介紹了python?dowhy數(shù)據(jù)估計因果分析功能實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • python之yield表達式學習

    python之yield表達式學習

    這篇文章主要介紹了python之yield表達式學習,python中有一個略微奇怪的表達式叫yield expression,本文就來探究一下這是個什么東西,需要的朋友可以參考下
    2014-09-09
  • Python實現(xiàn)尋找回文數(shù)字過程解析

    Python實現(xiàn)尋找回文數(shù)字過程解析

    這篇文章主要介紹了Python實現(xiàn)尋找回文數(shù)字過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python開發(fā)自定義Web框架的示例詳解

    Python開發(fā)自定義Web框架的示例詳解

    這篇文章主要為大家詳細介紹了python如何開發(fā)自定義的web框架,我文中示例代碼講解詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論