導航:首頁 > 編程語言 > python爬取郵箱

python爬取郵箱

發布時間:2022-08-02 21:55:10

python裡面如何判斷一個郵箱地址是否存在(非郵件格式是否合法)

是否真實存在 而不是隨便寫一個格式正確的地址 存在則可以提交注冊 不存在則要提示 ... 或者字元串里有郵件地址里不允許包含的字元。favormm的博客分享了判斷郵箱是否合法

Ⅱ Python 怎麼管理郵箱的文件夾

先進入到python的命令行中。這是首選的條件,你必須要安裝相關的程序環境才可以。

.導入下相關的imaplib的環境,這個表示,使用的IMAP的模式來進行管理。POP3 是表示僅下載郵件,並不具備管理文件夾的許可權。

然後你可以使用IMAP4 就是正常的模式 ,不帶有SSL方式進行操作。就是m=imaplib.IMAP4(『imap伺服器地址』)也可以使用SSL的模式 ,m=imaplib.IMAP4_SSL(『IMAP伺服器地址』)

即使已經連接到了伺服器,那麼你就可以進行登陸驗證了。可以使用m=imaplib.login(『用戶名』,』密碼』)進行登陸。提示login completed表示登陸成功!

.如果有imaplib.error表示登陸失敗了!

登陸成功則可以進行相關的文件夾管理了。m.list() 則可以直接查看到現在有 那些文件夾了。

下面可以直接使用for 語句直接循環出來。

可以使用m.create(『文件夾名稱』)進行創建

.m.delete(『文件夾名稱』)進行刪除

你可以利用上面的相關的知識,你就可以做一個進行文件夾許可權管理的知識了。

Ⅲ 如何用 Python 爬取需要登錄的網站

步驟一:研究該網站

打開登錄頁面

進入以下頁面 「bitbucket.org/account/signin」。你會看到如下圖所示的頁面(執行注銷,以防你已經登錄)

仔細研究那些我們需要提取的詳細信息,以供登錄之用

在這一部分,我們會創建一個字典來保存執行登錄的詳細信息:

1. 右擊 「Username or email」 欄位,選擇「查看元素」。我們將使用 「name」 屬性為 「username」 的輸入框的值。「username」將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 「email」,「 user_name」,「 login」,等等)。

2. 右擊 「Password」 欄位,選擇「查看元素」。在腳本中我們需要使用 「name」 屬性為
「password」 的輸入框的值。「password」 將是字典的 key 值,我們輸入的密碼將是對應的 value
值(在其他網站key值可能是 「userpassword」,「loginpassword」,「pwd」,等等)。

3. 在源代碼頁面中,查找一個名為 「csrfmiddlewaretoken」 的隱藏輸入標簽。「csrfmiddlewaretoken」
將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是一個名為 「csrftoken」,「 authenticationtoken」 的隱藏輸入值)。列如:「」。

最後我們將會得到一個類似這樣的字典:

Python

payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}

1
2
3
4
5

payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}

請記住,這是這個網站的一個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。

步驟2:執行登錄網站

對於這個腳本,我們只需要導入如下內容:

Python

import requests
from lxml import html

1
2

import requests
from lxml import html

首先,我們要創建 session 對象。這個對象會允許我們保存所有的登錄會話請求。

Python

session_requests = requests.session()

1

session_requests = requests.session()

第二,我們要從該網頁上提取在登錄時所使用的 csrf 標記。在這個例子中,我們使用的是 lxml 和 xpath 來提取,我們也可以使用正則表達式或者其他的一些方法來提取這些數據。

Python

login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)

tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]

1
2
3
4
5

login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)

tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]

**更多關於xpath 和lxml的信息可以在這里找到。

接下來,我們要執行登錄階段。在這一階段,我們發送一個 POST 請求給登錄的 url。我們使用前面步驟中創建的 payload 作為 data 。也可以為該請求使用一個標題並在該標題中給這個相同的 url 添加一個參照鍵。

Python

result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)

1
2
3
4
5

result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)

步驟三:爬取內容

現在,我們已經登錄成功了,我們將從 bitbucket dashboard 頁面上執行真正的爬取操作。

Python

url = 'https://bitbucket.org/dashboard/overview'
result = session_requests.get(
url,
headers = dict(referer = url)
)

1
2
3
4
5

url = 'https://bitbucket.org/dashboard/overview'
result = session_requests.get(
url,
headers = dict(referer = url)
)

為了測試以上內容,我們從 bitbucket dashboard 頁面上爬取了項目列表。我們將再次使用
xpath 來查找目標元素,清除新行中的文本和空格並列印出結果。如果一切都運行 OK,輸出結果應該是你 bitbucket 賬戶中的
buckets / project 列表。

Python

tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]

print bucket_names

1
2
3
4
5

tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]

print bucket_names

你也可以通過檢查從每個請求返回的狀態代碼來驗證這些請求結果。它不會總是能讓你知道登錄階段是否是成功的,但是可以用來作為一個驗證指標。

例如:

Python

result.ok # 會告訴我們最後一次請求是否成功
result.status_code # 會返回給我們最後一次請求的狀態

1
2

result.ok # 會告訴我們最後一次請求是否成功
result.status_code # 會返回給我們最後一次請求的狀態

就是這樣。

Ⅳ 請問如何用python將某個郵箱未讀郵件全部轉發到另一個郵箱

首先了解SMTP(簡單郵件傳輸協議),郵件傳送代理程序使用SMTP協議來發送電郵到接收者的郵件伺服器。SMTP協議只能用來發送郵件,不能用來接收郵件,而大多數的郵件發送伺服器都是使用SMTP協議。SMTP協議的默認TCP埠號是25。

本文主要介紹利用'smtplib','email'兩個模塊來實現郵件的發送,可以如下查看兩個模塊的函數和方法:

smtplib模塊簡介:

smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
此為SMTP類構造函數,表示與SMTP伺服器之間的連接,並根據這個連接向smtp伺服器發送指令,執行相關操作(如:登陸、發送郵件),且每個參數都是可選的。
其中最重要的參數:
host:smtp伺服器主機名
port:smtp服務的埠,默認是25;
如果在創建SMTP對象的時候提供了這兩個參數,在初始化的時候會自動調用connect方法去連接伺服器。

smtplib.SMTP還提供了如下方法:
SMTP.set_debuglevel(level):設置是否為調試模式
SMTP.connect([host[, port]]):連接到指定的smtp伺服器。參數分別表示 smpt主機和埠。
SMTP.docmd(cmd[, argstring]):向smtp伺服器發送指令。
SMTP.helo([hostname]) :使用"helo"指令向伺服器確認身份。
SMTP.login(user, password):登陸到smtp伺服器。現在幾乎所有smtp伺服器,都必須在驗證用戶信息合法之後才允許發送郵件。(重要!)
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options]):發送郵件。這里要注意一下第三個參數,msg是字元串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,發送郵件的時候,要注意msg的格式。這個格式就是smtp協議中定義的格式。SMTP.quit() :斷開與smtp伺服器的連接,相當於發送"quit"指令。(重要!)

常用的函數方法:

email模塊
1.class email.message.Message
__getitem__,__setitem__實現obj[key]形式的訪問。
Msg.attach(playload): 向當前Msg添加playload。
Msg.set_playload(playload):
Msg.add_header(_name, _value, **_params): 添加郵件頭欄位。

2.class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
所有MIME類的基類,是email.message.Message類的子類。

3.class email.mime.multipart.MIMEMultipart()
在3.0版本的email模塊 (Python 2.3-Python 2.5) 中,這個類位於email.MIMEMultipart.MIMEMult ipart。這個類是MIMEBase的直接子類,用來生成包含多個部分的郵件體的MIME對象。

4.class email.mime.text.MIMEText(_text)
使用字元串_text來生成MIME對象的主體文本。

獲得所需要使用的郵箱的host地址和port埠號,(本文使用的是163郵箱,對應的smtp伺服器地址:mail.163.com,埠號25)
常用郵箱的smtp伺服器地址和埠號如圖:

編寫程序如下:

#! /usr/bin/env python
import smtpli
from email.mime.text import MIMEText

mailto_list=['[email protected]'] #收件人(列表)
mail_host="smtp.163.com" #使用的郵箱的smtp伺服器地址
mail_user="name" #用戶名
mail_pass="pwd" #密碼
mail_postfix="postfix" #郵箱的後綴
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list) #將收件人列表以『;』分隔
try:
server = smtplib.SMTP()
server.connect(mail_host) #連接伺服器
server.login(mail_user,mail_pass) #登錄操作
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
for i in range(5): #發送五封,不過會被攔截的。。。
if send_mail(mailto_list,"hello","haha!"): #郵件主題和郵件內容
print "done!"
else:
print "failed!"

最後,可以運行編寫的py文件,可以得到如圖所是的結果,代表郵件發送成功。

這樣,就能成功實現用Python發送郵件啦!

Ⅳ 學習python必備的基礎知識

python作為當下最熱門的計算機編程語言之一,是許多互聯網大廠(如阿里騰訊等)在招聘時會作出要求的能力之一。學好python對於將來大數據方向、雲計算方向等物聯網時代新興崗位的學習很有幫助。

想要學習Python,需要掌握的內容還是比較多的,對於自學的同學來說會有一些難度,不推薦自學能力差的人。我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:

Python學習順序:

①Python軟體開發基礎

想要系統學習,你可以考察對比一下開設有IT專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能,南京北大青鳥、中博軟體學院、南京課工場等都是不錯的選擇,建議實地考察對比一下。

祝你學有所成,望採納。

Ⅵ Python 在國內的應用領域有哪些

Python的應用領域包括但不限於數據挖掘、科學計算、圖像處理及人工智慧。

Python可以用到的場景非常多,也正是因為Python的萬能屬性,所以學習Python的朋友也特別多。對於零基礎學生而言,Python代碼簡單易懂,不需要有計算機基礎也能上手,又因為其編寫的程序可維護性很高,所以在職程序員也喜歡使用Python。

目前南京課工場的課程體系內同樣涵蓋了Python語言,內容主要包括:

Python編程、Python數據爬取、Python數據採集、整理與清洗、Python機器、PySpark。

閱讀全文

與python爬取郵箱相關的資料

熱點內容
業余編程語言哪個好學 瀏覽:131
按照文件夾分個壓縮 瀏覽:102
航空工業出版社單片機原理及應用 瀏覽:756
如何在電信app上綁定親情號 瀏覽:374
安卓的怎麼用原相機拍月亮 瀏覽:803
配音秀為什麼顯示伺服器去配音了 瀏覽:755
c盤清理壓縮舊文件 瀏覽:325
app怎麼交付 瀏覽:343
圖蟲app怎麼才能轉到金幣 瀏覽:175
如何做徵文app 瀏覽:446
用什麼app管理斐訊 瀏覽:169
安卓如何下載寶可夢劍盾 瀏覽:166
編譯器開發屬於哪個方向 瀏覽:940
megawin單片機 瀏覽:687
以色列加密貨幣監督 瀏覽:909
程序員前端現在怎麼樣 瀏覽:499
伺服器和介面地址ping不通 瀏覽:557
linux命令返回上級目錄 瀏覽:899
移動花卡寶藏版為什麼不能選免流app 瀏覽:257
速騰carplay怎麼用安卓 瀏覽:13