1. 程式人生 > >python 3.x 163郵箱登陸,郵件讀取

python 3.x 163郵箱登陸,郵件讀取

import  urllib.request
import  urllib.parse
import  http.cookiejar,re

opener = None

# 帶Cookie訪問
def openurl(parms):
  global opener
  if opener == None:
      #cookie設定
      cj =  http.cookiejar.CookieJar()
      opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
  ret = opener.open(parms)
  return
ret def login_163(**parms): #初始化 parms_key = ['domain','password','username'] arg = {} for key in parms_key: if key in parms: arg[key] = parms[key] else: arg[key] = '' #獲取syscheckcode pre_login = arg['domain'] html = openurl(pre_login).read().decode('utf-8') patt = re.compile(r'.*?name=syscheckcode.*?value="(.*?)".*?'
) syscheckcode = patt.search(html) if not syscheckcode: raise Exception('GET syscheckcode Fail!') syscheckcode = syscheckcode.group(1) #登陸 postdata = { 'syscheckcode':syscheckcode, 'password':arg['password'], 'username':arg['username'], } postdata = urllib.parse.urlencode(postdata) postdata = postdata.encode('utf-8'
) req = urllib.request.Request( url= arg['domain'], data=postdata ) html = openurl(req).read().decode('utf-8') thisurl = 'http://reg.163.com/Main.jsp?username=' + arg['username'] html = openurl(thisurl).read().decode('utf-8') # 獲取隨機key thisurl = 'http://entry.mail.163.com/coremail/fcg/ntesdoor2?verifycookie=1&amp;lightweight=1&amp;from=urs' html = openurl(thisurl).read().decode('utf-8') patt = re.compile(r'.*[email protected]&sid=(.*?)&from.*?') sid = patt.search(html); sid = sid.group(1) # 獲取sid thisurl = 'http://mail.163.com/js6/main.jsp?sid=' + sid html = openurl(thisurl).read().decode('utf-8') thisurl = 'http://mail.163.com/js6/s?sid=' + sid + '&func=mbox:listMessages&topNav_mobileIcon_show=1&TopTabReaderShow=1&TopTabLofterShow=1' # 獲取郵件key --- 可以讀取看看,實際上是一個類似xml的表,所有的郵件都在這裡,我們需要的是key,這裡是抽取的第一封郵件的key html = openurl(thisurl).read().decode('utf-8') patt = re.compile(r'.*?name="id">(.*?)</string>.*?') key = patt.search(html); key = key.group(1) # 獲取郵件內容 thisurl = 'http://mail.163.com/js6/read/readhtml.jsp?mid=' + key html = openurl(thisurl).read().decode('utf-8') # 測試輸出 print(html) # 假設返回假,,這個驗證可以最後加上 flag = True #if 'succeedhandle_login' in html: #flag = True return flag # 這裡是開始,我懶得縮進了 if __name__ == '__main__': # 使用者名稱 及 密碼 while True: user = input('input your username:') pwd = input('input your password:') if len(user) != 0 and len(pwd) != 0: break print('輸入錯誤') # 測試網站 dom='https://reg.163.com/logins.jsp' try: flag = login_163(username=user,password=pwd,domain=dom) if not flag: print('讀取失敗!') exit(0) else: print('讀取成功') except Exception as e: print('Error:',e)

反正大致過程就是上面那樣,,,很標準的 post登陸,之後 163 的頁面比較特殊,具體可以自己去試試。

那個key頁面是抓包之後找到的,通過那個key就能獲得每一封郵件了。

整個程式碼是從一份功能程式碼中抽出來,因為剩下的內容涉及xxx,所以不發了。

本程式碼為自己所寫,自己抓包測的,沒有任何參考, 如有雷同,絕逼是被抄襲。

相關推薦

python 3.x 163郵箱登陸郵件讀取

import urllib.request import urllib.parse import http.cookiejar,re opener = None # 帶Cookie訪問 def openurl(parms): global open

python 3.x 爬蟲基礎---正則表示式(案例:爬取貓眼資訊寫入txt,csv,下載圖片)

python 3.x 爬蟲基礎 前言   正則表示式是對字串的一種邏輯公式,用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則的字串”,此字串用來表示對字串的一種“過濾”邏輯。正在在很多開發語言中都存在,而非python獨有。對其知識點進行總結後,會寫一個demo。 1.正

python 使用selenium webdriver編寫自動登入126或163郵箱併發送郵件的程式。

這是一個有問題的程式碼,擺弄了很久,找不到解決的辦法,希望看到我錯誤的大神給於留言指點。也可以發郵件給我,郵箱[email protected],大家有高明的解決方案,歡迎大佬指教。謝謝!我的問題主要出在點選“寫信”按鈕無反應。無法準確找到獲取該按鈕,並有反應的方法

Python】 關於Python 3.x使用print函式時出現的語法錯誤(SyntaxError: invalid syntax)的問題的原因

原文出處:http://blog.csdn.net/u010098331/article/details/52097845 【現象】 很多Python初學者,在安裝了最新版本的Python 3.x版本,比如Python 3.2之後, 去參考別人的程式碼(基於Pyt

關於Python 3.x使用print函式時出現的語法錯誤(SyntaxError: invalid syntax)的問題的原因

【現象】 很多Python初學者,在安裝了最新版本的Python 3.x版本,比如Python 3.2之後, 去參考別人的程式碼(基於Python 2.x寫的教程),去利用print函式,列印輸出內容時,結果卻遇到print函式的語法錯誤: SyntaxError: invalid syntax

python 3.X 使用selenium破解通用一二代滑塊驗證(有原圖的)以虎X網為列子(圖片畫素對比)

前幾天看到有位大大寫的破解極驗證碼,也就是二十滑塊驗證滑塊驗證。 本偏文章主要借鑑了其中的圖片畫素對比的方法,在原基礎上盡心的修改創作。讓本demo更適用於多個網站和一二代的滑塊驗證。 還有一個原因是原作者的demo我跑不通,邏輯出現了bug。 原作者地址:ht

python 3.x中列表排序問題從python2.x過渡到python3.x

我也剛學python不多久,所以是學的最新版的3.1,發現有很多規則都和2.x的不一樣,最最基本的print都改了,恐怕想把以前的工程移植到3.x沒有哪個工程是不需要改動的,感覺python有點失敗。。。 接下來說下我遇到的問題,本來想學下lambda用法(現在還沒搞明白

Python 3.x--函數的參數問題

**kwargs rgs name nbsp 函數 return 混合 類型 位置參數 -------------------參數類型----------------- 1、位置參數 def fun1(x,y): print(x) print(y) ret

使用python 3.x 對pythonchallenge-----1的解答過程

col rcc int 是什麽 則表達式 .html ring ply 字符 pythonchallenge-1地址 : http://www.pythonchallenge.com/pc/def/274877906944.html圖片如下:題目解析:看圖也不懂是什麽意思,

使用python 3.x 對pythonchallenge-----4的解答過程

there win data connect cnblogs http .html style 通過 pythonchallenge-4地址 : http://www.pythonchallenge.com/pc/def/linkedlist.php圖片如下: 題目解析:通

使用python 3.x 對pythonchallenge-----5的解答過程

hal [0 語法 ima () htm .com 解析 .py pythonchallenge-5地址 : http://www.pythonchallenge.com/pc/def/peak.html圖片如下: 題目解析:源代碼中有個鏈接<peakhell src

使用python 3.x 對pythonchallenge-----12的解答過程

truncate 使用 python img http 題目 all utf-8 過程 pythonchallenge-10地址 : http://www.pythonchallenge.com/pc/return/evil.html圖片如下: 題目解析: 查看源代碼,圖片

使用python 3.x 對pythonchallenge-----14的解答過程

.html log for turn bsp show wire 技術 走了 pythonchallenge-14地址 : http://www.pythonchallenge.com/pc/return/italy.html 題目解析:獲取的信息有 ①圖片是一個便便一樣的

python 3.x 文件讀取

oop bsp odin encoding str 方法 叠代 style int 今天跟大家分享兩種python 3.x文件讀取的方法: 第一種(low loop):   f = open("file.txt","r",encoding="utf-8")   for li

thinkPHP使用163郵箱發送郵件

啟用 寫博客 span 地址 use 技術 dma htm 控制 thinkPHP3.2.3使用163郵箱發送郵件 (一) 前言 第一次寫博客,主要就是為了分享一下自己敲代碼的一些心得並整理一下自己的知識以便以後查看。 我原來一直在找通過thinkPHP使用QQ郵箱發送郵

install pip3 for python 3.x

ica 實用 http cert org image 方便 too mage 二.install pip for python3.x 其實這也不難。。下載量個包,執行兩個命令搞定。 1.首先安裝setuptools   小夥伴們可以通過官方模塊庫來下載:https://py

python 3.x 學習筆記9 (面向對象)

表現 技術發展 計算 多種實現 類方法 run spa col 對數 1.面向對象 面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。 2.類(class): 一個類即是對一類擁有相同屬性的對象的抽象、藍圖、原型。在類中定義了這些

python 復制多個文件到指定目錄(基於python 3.X

__name__ std lena import print tex post res 目錄 import osimport shutildef copyPDF(): addressPDF = "E:/totally/FinancePDF/" f_list = os.lis

python 3.x 分析日誌的模塊(正則匹配)

默認值 .get 文件 file 打印 files 日誌 當前 表達式 #導入正則模塊 import re auth="no_shutdown_" ‘‘‘ 分析日誌的模塊,查找日誌中標誌性信息產生的次數 ‘‘‘ #定義你需要查找的對象的正則表達式wordcheck #需要分

python 3.x 學習筆記13 (socket_ssh and socket_文件傳輸)

粘包問題 問題 取出 nec imp 傳輸文件 ket color md5 ssh服務端 import socket,os server = socket.socket() server.bind((‘localhost‘,6666)) server.listen()