亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Python讀取163郵箱郵件:requests、selenium與IMAP三種方案對比與實(shí)戰(zhàn)

Python讀取163郵箱郵件:requests、selenium與IMAP三種方案對比與實(shí)戰(zhàn) 做郵件自動化的朋友應(yīng)該都遇到過這個需求想把163郵箱收件箱里的郵件列表抓下來或者進(jìn)一步提取正文、附件用于自動收驗(yàn)證碼、整理訂閱郵件、做郵件監(jiān)控。我早期接到這個需求時第一反應(yīng)就是寫爬蟲但163郵箱網(wǎng)頁版的登錄和渲染遠(yuǎn)比想象中麻煩試過 urllib、requests、selenium 三種方案后發(fā)現(xiàn)它們各有各的適用場景也存在各自的坑。這篇文章把三種方案的路數(shù)和取舍講清楚另外附上一個我后來才意識到的更優(yōu)解直接用 IMAP 協(xié)議讀郵件從根本上繞開網(wǎng)頁爬取的各種麻煩。如果你正準(zhǔn)備用 Python 處理 163 郵箱或者對 Web 自動化的技術(shù)選型感興趣這篇總結(jié)應(yīng)該能幫你省下不少時間。我會直接貼出可用代碼和踩坑記錄也會說明哪些地方需要你根據(jù)當(dāng)前頁面結(jié)構(gòu)做適配。1. 先把趨勢看明白爬郵箱網(wǎng)頁版的本質(zhì)是什么1.1 郵件系統(tǒng)的動態(tài)渲染趨勢純請求越來越難很多人的第一反應(yīng)是收件箱不就是個列表頁面嗎直接拿 requests 請求 HTML 再解析不就行了理論上確實(shí)是這樣但實(shí)際操作中你會發(fā)現(xiàn) 163 郵箱網(wǎng)頁版經(jīng)過了多次改版頁面大量使用異步加載。你請求回來的 HTML 里郵件列表的數(shù)據(jù)可能并不完整需要在瀏覽器中執(zhí)行 JavaScript 后才會渲染出來。這就引出了 Web 爬蟲里最核心的分水嶺目標(biāo)頁面是服務(wù)端渲染還是客戶端渲染。早年的郵箱 Web 端會在 HTML 里直接輸出郵件表格requests 一把梭就能搞定現(xiàn)在的郵箱頁面普遍是前后端分離列表數(shù)據(jù)往往通過內(nèi)部的 JSON 接口異步返回或者用類似 iframe 內(nèi)嵌子頁面的方式組織。用 requests 抓回來的 HTML要么只是個骨架要么數(shù)據(jù)結(jié)構(gòu)復(fù)雜到你懷疑人生。所以在動手之前先花幾分鐘打開瀏覽器開發(fā)者工具看 Network 面板里頁面加載了哪些真實(shí)請求HTML 里到底包不包含郵件列表數(shù)據(jù)。這一步?jīng)Q定了你后面選擇哪條技術(shù)路線也避免你寫完一版 regex 解析后頁面一改就全線崩潰。1.2 三種 Web 方案的橫向?qū)Ρ萿rllib、requests、selenium 是處理 Web 自動化的三個典型層級urllib 是 Python 標(biāo)準(zhǔn)庫自帶的 HTTP 客戶端功能最底層幾乎所有細(xì)節(jié)都要手動處理比如 Cookie 存儲、請求頭拼接、重定向跟隨等。適合用來理解 HTTP 協(xié)議工作原理但寫業(yè)務(wù)代碼效率低。requests 是對 HTTP 的極佳封裝Session 自動管理 Cookie代碼簡潔直觀是目前爬蟲腳本的主力。適合接口調(diào)試、服務(wù)端渲染頁面的抓取以及配合內(nèi)部 JSON 接口使用。selenium 直接驅(qū)動真實(shí)瀏覽器能完整執(zhí)行頁面 JavaScript處理復(fù)雜交互幾乎可以模擬真人操作。缺點(diǎn)是重、慢且依賴 ChromeDriver 等瀏覽器驅(qū)動版本匹配。三者不是替代關(guān)系而是遞進(jìn)關(guān)系。能不用瀏覽器就不用在瀏覽器里跑這是爬蟲工程師的基本素養(yǎng)因?yàn)闉g覽器的開銷和穩(wěn)定性問題會讓你在批量任務(wù)里吃盡苦頭。1.3 有一條更優(yōu)路徑IMAP 協(xié)議在繼續(xù)講三種 Web 方案之前我必須先劇透一個結(jié)論如果你只是想讀自己的郵件那 IMAP 協(xié)議才是更合理的方案。IMAP 是郵件客戶端與郵件服務(wù)器之間的標(biāo)準(zhǔn)協(xié)議163 郵箱本來就支持。你在網(wǎng)頁上看到的“收件箱”其實(shí)就是 IMAP 服務(wù)器上的 INBOX 文件夾。用 Python 標(biāo)準(zhǔn)庫 imaplib 就能直接連上去像操作本地隊(duì)列一樣拉取主題、發(fā)件人、時間、正文代碼量只有 Web 爬蟲的三分之一還不用擔(dān)心登錄加密、驗(yàn)證碼、頁面改版之類的問題。我把 Web 方案放在前面講是因?yàn)楹芏嗳嗣鞔_要求“用爬蟲”或者需要適配的不是郵件協(xié)議而是網(wǎng)頁端功能比如標(biāo)記已讀、管理文件夾。但從選型角度你至少應(yīng)該知道 IMAP 這條路的存在具體對比我會在第 5 部分展開。2. 方案一urllib——最原始的 HTTP 模擬適合理解原理2.1 核心思路CookieJar 保持會話 POST 表單登錄urllib 做爬蟲的思路其實(shí)和 requests 類似只是所有事情都要自己動手。核心是兩件事第一用 http.cookiejar.CookieJar 構(gòu)造一個帶有 Cookie 管理能力的 opener因?yàn)榈卿浐蠓?wù)器會通過 Set-Cookie 頭下發(fā)會話憑證后續(xù)請求必須攜帶這個 Cookie 才能被識別為登錄狀態(tài)第二向登錄接口提交表單數(shù)據(jù)模擬用戶在網(wǎng)頁上的登錄動作。163 郵箱的登錄頁面向來不是單純 POST 用戶名密碼就能過的中間還有加密和驗(yàn)證碼環(huán)節(jié)。我在最初用 urllib 實(shí)戰(zhàn)時卡得最久的就是這一步。網(wǎng)易統(tǒng)一登錄頁會通過 JavaScript 對密碼做 RSA 加密后再提交密鑰由服務(wù)端動態(tài)下發(fā)。這意味著你光靠 urllib 發(fā)請求是不夠的還得先抓取頁面上的加密公鑰然后在 Python 里復(fù)刻一遍加密算法。這里我給一個折中思路可以先手動在瀏覽器登錄 163 郵箱然后把登錄后的 Cookie 字符串提取出來直接塞進(jìn) urllib 的請求頭里。這種方式對個人腳本來說完全夠用雖然登錄這一步還是手動的但之后抓取收件箱列表的過程是自動化的。2.2 urllib 實(shí)現(xiàn)收件箱列表解析的完整代碼我直接貼一段基于手動 Cookie 的 urllib 獲取收件箱列表的示例。這段代碼的核心是請求收件箱所在的實(shí)際 URL然后將返回的 HTML 通過正則或簡單的字符串處理提取郵件主題和發(fā)件人。import urllib.request import re # 手動從瀏覽器開發(fā)者工具中復(fù)制的 Cookie cookie_str your_cookie_here url https://mail.163.com/js6/s?funcmbox:listMessages headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Cookie: cookie_str, Referer: https://mail.163.com/ } req urllib.request.Request(url, headersheaders) resp urllib.request.urlopen(req, timeout10) html resp.read().decode(utf-8, errorsignore) # 假設(shè)郵件列表中的主題和發(fā)件人通過特定 class 或者屬性輸出 # 不同時期頁面結(jié)構(gòu)差異很大需要按實(shí)際 DOM 調(diào)整 subjects re.findall(rsubject:(.*?), html) senders re.findall(rsender:(.*?), html) for idx, (subject, sender) in enumerate(zip(subjects, senders), 1): print(f{idx}. 發(fā)件人: {sender} | 主題: {subject})實(shí)際運(yùn)行時會發(fā)現(xiàn)一個問題163 郵箱網(wǎng)頁版的郵件列表數(shù)據(jù)非常喜歡用 JSON 格式內(nèi)嵌在script標(biāo)簽里或者通過單獨(dú)的接口返回。用正則雖然能快速提取但只要你沒逃過字符轉(zhuǎn)義問題比如主題里出現(xiàn)引號解析就會出錯。所以我建議 urllib 方案只作為研究 HTTP 流向的教學(xué)工具真正用來做業(yè)務(wù)還是得靠 requests 更穩(wěn)定的解析手段。2.3 urllib 方案的真實(shí)局限性可能有人會覺得urllib 什么都能做為什么大家還是更愿意用 requests差別在于開發(fā)效率和代碼可讀性。urllib 處理 Cookie 要引入專門的 CookieJar重定向行為需要額外配置請求頭一個沒寫全就可能被服務(wù)器拒絕參數(shù)編碼也得手動調(diào)用 urllib.parse.urlencode。這些在 requests 里都是非常自然的操作。另外urllib 并不天然支持連接池和 Session 這種抽象每次請求都像第一次見面一樣重建連接性能和穩(wěn)定性都不理想。如果你的任務(wù)是循環(huán)翻頁抓取多個文件夾的郵件列表urllib 的代碼會寫得越來越長而 requests 只需要在同一 Session 上換 URL 就行。所以我對 urllib 的定位是用它寫一兩次腳本搞清楚 HTTP 請求構(gòu)成和 Cookie 機(jī)制就夠了真正干活不用它。3. 方案二requests——日常自動化任務(wù)的主力方案3.1 requests.Session 與 urllib 的差異requests 的設(shè)計(jì)思路和 urllib 最大的不同就是 Session 機(jī)制。Session 對象相當(dāng)于一個持久化客戶端自動保存 Cookie自動處理請求頭如 Referer連接復(fù)用也有底層 urllib3 連接池頂著。對于需要登錄態(tài)的接口調(diào)用你只需要登錄一次后續(xù)請求全部走同一個 Session代碼干凈思維負(fù)擔(dān)小。在 163 郵箱這個場景里requests 的優(yōu)勢尤其明顯郵件列表數(shù)據(jù)如果是異步接口返回的你可以直接對接口發(fā)請求拿 JSON不用再浪費(fèi)時間寫正則如果是服務(wù)端渲染的 HTML也可以配合 BeautifulSoup 做結(jié)構(gòu)化解析。相比 urllib解析準(zhǔn)確度和維護(hù)性上升一個臺階。3.2 登錄難題網(wǎng)易的統(tǒng)一登錄和密碼加密雖然 requests 寫請求很爽但登錄 163 郵箱依然是繞不開的坎。網(wǎng)易統(tǒng)一登錄地址在 reg.163.com 域名下頁面會加載一段加密腳本。正常情況下提交登錄表單時密碼字段已經(jīng)變成 RSA 加密后的密文同時頁面還會校驗(yàn)驗(yàn)證碼常見的是滑塊驗(yàn)證。直接拿明文密碼 POST 是過不了服務(wù)器的。有兩條路可以走第一種完整復(fù)刻登錄流程。先去頁面源碼里找到 RSA 公鑰然后使用 rsa 庫對密碼進(jìn)行加密再模擬提交。這一步還要處理驗(yàn)證碼問題?;瑝K驗(yàn)證碼的自動化識別復(fù)雜且不穩(wěn)定我建議不要硬碰硬可以在檢測到驗(yàn)證碼時手動完成一次之后 Cookie 就駐留在 Session 里了。第二種更務(wù)實(shí)仍然采用“瀏覽器手動登錄一次導(dǎo)出 Cookie 給 requests 用”的方式。這種方式適合抓取頻率不高、運(yùn)行環(huán)境不固定的個人腳本省去所有加密和驗(yàn)證碼的麻煩。把 Cookie 導(dǎo)入 requests 的姿勢很簡單我直接貼代碼。這種做法的核心就是構(gòu)造一個 requests.cookies.RequestsCookieJar 對象把鍵值對塞進(jìn)去然后掛在 Session 上。import requests session requests.Session() session.headers.update({ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 }) # 手動從瀏覽器復(fù)制 Cookie 字符串格式類似 name1value1; name2value2 cookie_str name1value1; name2value2 for item in cookie_str.split(;): key, value item.strip().split(, 1) session.cookies.set(key, value) resp session.get(https://mail.163.com/, timeout10) print(resp.status_code)這里有個細(xì)節(jié)163 郵箱頂部可能還有一個主域名跳轉(zhuǎn)第一次請求 163.com 后服務(wù)器會下發(fā)新的 Cookie所以如果你發(fā)現(xiàn)某些接口提示未登錄可能是跳轉(zhuǎn)過程中漏掉了中間域的 Cookie。最簡單的辦法是把所有域名下的 Cookie 都復(fù)制進(jìn) session包括 .163.com、.mail.163.com 等。3.3 用 requests 獲取收件箱列表的代碼和解析容錯登錄問題解決后抓取收件箱列表就簡單了。下面是我用 requests 加 BeautifulSoup 解析郵件列表的示例。注意頁面結(jié)構(gòu)會隨版本變化所以我在代碼里做了多級容錯先嘗試從 JSON 接口拿數(shù)據(jù)失敗再去解析 HTML。import requests from bs4 import BeautifulSoup import json def fetch_inbox(session, folder_url): resp session.get(folder_url, timeout10) resp.encoding utf-8 # 方式一如果能直接從接口拿到 JSON try: data resp.json() messages data.get(var, {}).get(list, []) for msg in messages: print(msg.get(subject), msg.get(sender)) return except ValueError: pass # 方式二解析 HTML soup BeautifulSoup(resp.text, html.parser) mail_items soup.select(.mailListItem) # 選擇器根據(jù)實(shí)際頁面調(diào)整 for item in mail_items: subject_node item.select_one(.subject) sender_node item.select_one(.sender) if subject_node: print(subject_node.get_text(stripTrue), |, sender_node.get_text(stripTrue))如果你是直接對內(nèi)部的異步接口發(fā)起請求那么拿到的基本都是 JSON 格式。163 郵箱的接口返回值通常經(jīng)過一層 JSONP 封裝可能在變量賦值里也可能在 callback 函數(shù)里。遇到這種情況可以用正則先抽取 JSON 對象再交給 json.loads 解析。import re match re.search(rvar listData (.*?);, resp.text, re.S) if match: data json.loads(match.group(1)) for msg in data.get(list, []): print(msg.get(subject), msg.get(from))這個方案跑起來很穩(wěn)缺點(diǎn)是接口地址和返回字段名可能改版。我建議在代碼里加上“字段不存在時的兜底邏輯”比如用 msg.get(subject) 而不是 msg[subject]避免單個字段異常導(dǎo)致整個腳本中斷。4. 方案三selenium——瀏覽器兜底動態(tài)渲染也不怕4.1 為什么還需要 selenium有些場景下requests 方案會走到死胡同頁面里某個關(guān)鍵數(shù)據(jù)怎么都找不到接口或者必須點(diǎn)擊某個按鈕后才出現(xiàn)文件夾列表又或者登錄驗(yàn)證碼太復(fù)雜連人工介入都不方便。這時候 selenium 就是最后一層兜底。selenium 的價值在于它是真實(shí)瀏覽器環(huán)境用戶能看到操作過程調(diào)試直觀對反爬蟲的擾動更小。163 郵箱網(wǎng)頁版雖然絕大多數(shù)數(shù)據(jù)接口都能直接拿到 JSON但如果你對接口不熟悉最快驗(yàn)證頁面行為的方式就是用 selenium 跑一遍。另外如果需要模擬用戶操作比如自動打開某封郵件、點(diǎn)擊加載更多、切換文件夾selenium 都是最直接的工具。代價也很明顯啟動瀏覽器大約消耗上百 M 內(nèi)存每次操作多一步等待跑批量任務(wù)時的速度遠(yuǎn)比不上 requests。4.2 selenium 操作 163 收件箱的完整流程selenium 的關(guān)鍵是先解決瀏覽器驅(qū)動問題。我用 Chrome 舉例確保本機(jī) Chrome 版本和 chromedriver 匹配否則啟動就會報 SessionNotCreatedException。驅(qū)動裝好以后核心步驟就是打開登錄頁、輸入賬號密碼、等待登錄成功、跳轉(zhuǎn)到收件箱、提取郵件列表元素。登錄 163 郵箱時有個比較煩人的點(diǎn)登錄框可能在 iframe 里。你在主頁面找不到輸入框需要先切換進(jìn) iframe 才能操作。這一步卡住過很多人我貼一段兼容 iframe 的登錄代碼。from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver webdriver.Chrome() wait WebDriverWait(driver, 10) driver.get(https://mail.163.com/) # 郵箱登錄頁一般有 iframe需要切換 driver.switch_to.frame(login-frame) # frame id 或 name 按實(shí)際調(diào)整 # 等賬號輸入框出現(xiàn) user_input wait.until(EC.presence_of_element_located((By.NAME, email))) user_input.send_keys(your_username163.com) password_input driver.find_element(By.NAME, password) password_input.send_keys(your_password) # 登錄按鈕可能有多個選擇可見的那個 login_button driver.find_element(By.CSS_SELECTOR, a#dologin) login_button.click() # 等待登錄完成回到默認(rèn)內(nèi)容 driver.switch_to.default_content() wait.until(EC.url_contains(mail.163.com)) print(登錄成功) # 進(jìn)入收件箱 driver.get(https://mail.163.com/js6/main.jsp)登錄成功后提取郵件列表的核心操作是等待列表元素的出現(xiàn)。目標(biāo)元素通常是包含主題、發(fā)件人、時間的行容器用 XPath 或 CSS 選擇器遍歷。注意郵箱頁面為了性能列表行可能部分復(fù)用元素?cái)?shù)量和郵件數(shù)量不是嚴(yán)格的對應(yīng)關(guān)系需要配合滾動來加載更多內(nèi)容。4.3 WebDriverWait 顯式等待與 iframe/彈窗處理selenium 最大的坑就是“元素還沒渲染出來你去點(diǎn)它”。163 郵箱的網(wǎng)絡(luò)請求多尤其是第一次登錄后列表數(shù)據(jù)加載需要時間。如果代碼里全部用 time.sleep(5) 這種固定等待要么等太久要么網(wǎng)絡(luò)慢時依然超時。正確姿勢是顯式等待也就是 WebDriverWait 配合 expected_conditions。例如等待某個主題文本出現(xiàn)wait.until(EC.presence_of_element_located((By.XPATH, //div[classd]//span[classsubject])))還有 iframe 的嵌套問題。163 郵箱的郵件詳情頁也可能使用 iframe處理思路和登錄 iframe 一樣先 switch_to.frame 進(jìn)入解析完再 switch_to.default_content 退出。如果你在頁面里怎么都找不到元素第一反應(yīng)應(yīng)該是檢查當(dāng)前上下文是否還在正確 frame。彈窗方面163 郵箱偶爾會有引導(dǎo)浮層。如果你的腳本被浮層擋住點(diǎn)擊可以用 EC.element_to_be_clickable先等待元素可點(diǎn)擊再執(zhí)行 click?;蛘呤謩雨P(guān)閉浮層try: close_btn wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, .close-btn))) close_btn.click() except Exception: pass這種“能關(guān)就關(guān)關(guān)不掉忽略”的邏輯在自動化腳本里非常實(shí)用。4.4 divulli 組合定位與上傳文件等細(xì)節(jié)熱搜詞里有一個很典型的場景頁面元素不是原生下拉框而是由 div、ul、li 組合出來的自定義下拉框。這在 163 郵箱的文件夾切換里很常見。遇到這種控件selenium 的 Select 類是失效的你需要先點(diǎn)擊觸發(fā)下拉展開的 div再定位 ul 下的 li 項(xiàng)。# 假設(shè)點(diǎn)擊一個自定義下拉框然后選擇“收件箱” driver.find_element(By.CSS_SELECTOR, div.select-wrapper).click() time.sleep(1) driver.find_element(By.XPATH, //ul[classselect-options]/li[text()收件箱]).click()另外selenium 上傳本地文件也是個常見需求。很多人以為要先打開文件選擇對話框再用 pywin32 或 AutoIT 操作窗口但實(shí)際上 selenium 提供了最簡方式只要 input 標(biāo)簽存在直接用 send_keys 傳入本地文件絕對路徑即可。file_input driver.find_element(By.CSS_SELECTOR, input[typefile]) file_input.send_keys(C:/path/to/attachment.txt)這些細(xì)節(jié)看似皮毛但在自動化測試或采集腳本里經(jīng)常是卡住進(jìn)度的關(guān)鍵點(diǎn)。5. 繞開網(wǎng)頁爬取直接通過 IMAP 協(xié)議讀郵件5.1 IMAP 是什么為什么推薦如果你可以接受不使用“網(wǎng)頁爬蟲”的形式那么 IMAP 協(xié)議是最省心的路子。IMAP 是郵件客戶端與郵件服務(wù)器之間的標(biāo)準(zhǔn)協(xié)議你用的網(wǎng)易郵箱客戶端、手機(jī)自帶郵件 App 底層就是走 IMAP或 POP3。Python 標(biāo)準(zhǔn)庫 imaplib 已經(jīng)實(shí)現(xiàn)了客戶端邏輯你只需要處理字符串解析不用關(guān)心網(wǎng)頁結(jié)構(gòu)。IMAP 的這種“繞過瀏覽器操作”優(yōu)勢非常明顯第一不依賴頁面 DOM網(wǎng)易怎么改版都不影響你的流程第二請求量小通常一次 select 加一次 search 就能拿到整個收件箱的郵件 ID 列表再按需 fetch 內(nèi)容對服務(wù)器的壓力遠(yuǎn)小于 Web 自動化第三協(xié)議穩(wěn)定接口幾乎不變代碼可以長期使用。說白了聽到“爬郵件”這個詞第一反應(yīng)不應(yīng)該是 selenium而是 IMAP。正如我在第 1 部分提到的那樣Web 爬蟲通常是在沒有郵件服務(wù)器權(quán)限或者需要操作特定網(wǎng)頁功能時才必須使用。5.2 163 郵箱開啟 IMAP 服務(wù)并獲取授權(quán)碼用 IMAP 連 163 郵箱有一個關(guān)鍵前提需要在網(wǎng)頁端設(shè)置里開啟 IMAP/SMTP 服務(wù)并且用“授權(quán)碼”而不是郵箱密碼登錄。這是 163 的安全策略目的是避免你的郵箱密碼直接暴露給第三方客戶端。具體操作路徑登錄 163 郵箱網(wǎng)頁版進(jìn)入設(shè)置 - POP3/SMTP/IMAP開啟 IMAP 服務(wù)。開啟過程中會要求發(fā)送一條短信驗(yàn)證驗(yàn)證通過后會生成一個 16 位授權(quán)碼。這個授權(quán)碼只顯示一次保存好。后面 imaplib 登錄時“密碼”這個位置填的就是授權(quán)碼。這個點(diǎn)我當(dāng)初踩過坑直接用郵箱密碼去連 imap.163.com一直報認(rèn)證失敗后來才意識到需要開啟服務(wù)和授權(quán)碼。如果你發(fā)現(xiàn) login 一直失敗第一反應(yīng)就檢查這個。5.3 imaplib 獲取收件箱列表和郵件正文的完整示例下面的代碼用 imaplib 連接 163 郵箱的 IMAP 服務(wù)器選擇 INBOX搜索所有郵件然后拉取最近幾封郵件的發(fā)件人和主題。import imaplib import email from email.header import decode_header def decode_mime_header(raw): if raw is None: return decoded decode_header(raw) result [] for text, charset in decoded: if isinstance(text, bytes): charset charset or utf-8 result.append(text.decode(charset, errorsignore)) else: result.append(text) return .join(result) HOST imap.163.com APP_PASSWORD your_authorization_code # 不是郵箱密碼 conn imaplib.IMAP4_SSL(HOST, 993) conn.login(your_username163.com, APP_PASSWORD) conn.select(INBOX) # 搜索所有郵件返回的是郵件 ID 列表 status, data conn.search(None, ALL) mail_ids data[0].split() # 拉取最近 5 封 for mail_id in mail_ids[-5:]: status, msg_data conn.fetch(mail_id, (RFC822)) msg email.message_from_bytes(msg_data[0][1]) subject decode_mime_header(msg.get(Subject)) sender decode_mime_header(msg.get(From)) print(f主題: {subject} | 發(fā)件人: {sender}) conn.logout()這段代碼注意幾點(diǎn)郵件主題和發(fā)件人可能是 MIME 編碼過的比如 ?UTF-8?B?...? 這種所以要用 email.header.decode_header 解碼fetch 返回的報文是 bytes用 email.message_from_bytes 轉(zhuǎn)換搜索條件可以更精確比如用 UNSEEN 拿未讀郵件或用 SINCE 限定日期這樣每次拉取的就只是增量郵件效率更高。5.4 三種 Web 方案 vs IMAP 的選型對照表我根據(jù)自己的經(jīng)驗(yàn)做了一張選型對照表方便你按實(shí)際需求挑方案方案登錄難度解析穩(wěn)定性請求速度是否推薦長期使用適用場景urllib難需手動加密/帶Cookie差頁面改版就崩中不推薦學(xué)習(xí)HTTP原理、救急requests中建議手動Cookie中依賴接口和結(jié)構(gòu)快視情況接口明確、結(jié)構(gòu)穩(wěn)定的抓取selenium中需處理iframe/滑塊高只要元素能找到就行慢不推薦長期批量頁面交互復(fù)雜、臨時兜底IMAP低開服務(wù)授權(quán)碼高協(xié)議穩(wěn)定非??鞆?qiáng)烈推薦各類郵件讀取、監(jiān)控、歸檔可以看到IMAP 在絕大多數(shù)需要“讀郵件”的場景下都是最合適的。requests 適合調(diào)試接口和做輕量驗(yàn)證selenium 則適合作為最后手段千萬別一上來就把項(xiàng)目壓在 selenium 上那會浪費(fèi)大量時間在等待和元素抖動上。6. 常見問題與排查技巧實(shí)錄6.1 429 too many requests請求太頻繁被限流怎么處理如果你用 requests 或 urllib 頻繁請求 163 郵箱相關(guān)接口大概率會遇到 429 狀態(tài)碼錯誤信息通常類似exceeded retry limit, last status: 429 too many requests。這是服務(wù)器在做限流說明你在短時間內(nèi)請求量太大被識別為風(fēng)險行為。解決辦法也很樸素給請求之間加隨機(jī)延時比如time.sleep(random.uniform(1, 3))。控制整體并發(fā)別用多線程或者多進(jìn)程同時開太多 Session。實(shí)際項(xiàng)目中如果并發(fā)量超過 5我就建議改用 IMAP 協(xié)議因?yàn)?IMAP 一次連接可以連續(xù)處理大批郵件對服務(wù)端更友好。請求到達(dá)一定次數(shù)后強(qiáng)制休息 30 秒到 1 分鐘讓限流窗口過去。一定要設(shè)置重試機(jī)制遇到 429 時等待一段時間后重試不要無限重試。import requests import time def get_with_retry(session, url, max_retries3): for i in range(max_retries): resp session.get(url, timeout10) if resp.status_code 429: wait 2 ** i print(f收到 429等待 {wait} 秒后重試) time.sleep(wait) continue return resp raise RuntimeError(重試多次依然被限流)這種指數(shù)退避的策略非常管用既簡單又有效。實(shí)際跑的時候建議在日志里記錄每次請求的狀態(tài)碼和耗時方便事后分析。6.2 登錄失敗、驗(yàn)證碼彈窗真實(shí)場景下的處理姿勢登錄失敗是 163 郵箱腳本最常見的痛點(diǎn)。如果你用 requests 模擬登錄提示密碼錯誤先檢查是不是加密環(huán)節(jié)出了問題。最簡單驗(yàn)證方式抓取網(wǎng)頁版登錄成功后產(chǎn)生的 Cookie直接復(fù)用繞開加密邏輯而不是死磕 JS 逆向。如果登錄時彈出了滑塊驗(yàn)證碼千萬不要想著完全自動化識別?;瑝K識別成本高、容易被風(fēng)控而且對普通腳本來說根本沒有必要。我建議的方案是程序負(fù)責(zé)把瀏覽器窗口彈出來人手動拖一下滑塊然后腳本繼續(xù)跑。這種方式既穩(wěn)定又不會被封號。如果是 selenium 場景登錄成功后注意等待頁面跳轉(zhuǎn)完成不要立刻去點(diǎn)其他元素。163 郵箱登錄成功后會有一個短暫的過渡頁可能還會彈出“設(shè)置密保/綁定手機(jī)”之類的引導(dǎo)。如果你的腳本執(zhí)行太快很容易點(diǎn)到不該點(diǎn)的東西。6.3 元素定位不到、Cookie 失效、郵件變 base64 的排查清單元素定位不到第一先看頁面是否加載完用顯式等待代替 sleep第二看元素是否在 iframe 里需要先 switch_to.frame第三看是否為隱藏元素可能需要先點(diǎn)擊某個父元素觸發(fā)顯示。Cookie 失效Cookie 通常有幾個小時到幾天的有效期取決于你抓取的接口。如果腳本突然報未登錄重新手動登錄一次并更新 Cookie 即可。我習(xí)慣把 Cookie 保存到本地 JSON 文件每天開始運(yùn)行前檢查是否過期。郵件正文顯示成 base64郵件正文可能使用了 base64 編碼傳輸。用 email 庫解析時需要判斷 payload 是否為 base64然后進(jìn)行解碼。判斷方法是在頭部查看 Content-Transfer-Encoding 字段。IMAP 場景下處理這個比較簡單因?yàn)?email 庫自帶 decode 邏輯只要你用 email.message_from_bytes 解析就能自動處理大部分情況。還有一個我在實(shí)戰(zhàn)中發(fā)現(xiàn)的規(guī)律爬 163 郵箱網(wǎng)頁版時盡量選擇內(nèi)部接口而不是解析整張 HTML 頁面。內(nèi)部接口返回的數(shù)據(jù)結(jié)構(gòu)雖然初期需要摸索但一旦找到穩(wěn)定性遠(yuǎn)超脆弱的 DOM 解析。最后再說點(diǎn)實(shí)在的我這個項(xiàng)目實(shí)際落地時最終選型是 IMAP 少量 requests。IMAP 負(fù)責(zé)郵件列表、正文、附件的拉取requests 只用來處理網(wǎng)頁端特有的操作比如某些設(shè)置頁的修改。selenium 只是前期確認(rèn)頁面結(jié)構(gòu)時用過一次后來就再也沒有出現(xiàn)在正式腳本里。如果你在多個方案之間糾結(jié)我的建議很簡單先考慮郵件協(xié)議再考慮網(wǎng)頁接口最后才考慮瀏覽器自動化。這樣不僅能省力還能讓你的腳本活得更久。另外一個小技巧無論你用哪種方案請務(wù)必加日志和異常收集。郵件項(xiàng)目最容易出問題的地方是單個郵件解析失敗導(dǎo)致整個任務(wù)中斷。我在寫 imaplib 腳本時會對每一封郵件的解析做 try-except失敗時把郵件 ID 記錄下來繼續(xù)下一封最后統(tǒng)一查看失敗列表。這個習(xí)慣讓我少熬了很多夜推薦給你。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久久精| 久久久999日本大片| 日本色色色| 18禁在线视频| 欧美热图99| 久久久久久91香蕉国产| 日韩在线视频1234| 成人av动漫在线观看| 人人操人人摸人人骑| 亚洲AV色图一区| 色呦呦、国产精品| 加勒比大香蕉视频在线| 中文字幕亚韩| 欧美黄色大片在线观看| 天堂俺去俺来也www久久婷婷| 肥佬影院91| 啊啊啊啊啊啊啊网址在线观看| 日韩伦理久 久久 清纯| 亚洲黄色影视| 爱av免费| 亚洲精品精品一区二区| 岛国片国产成人亚洲播放| 校园春色五月天| 日韩免费三级黄片电影| 亚洲欧美国产va在线播放频| 91色狼| 蜜桃臀一区二区aV| 丰满人妻一区二区中文| 精品美女人人干| 韩日巨乳美女免费视频在线观看| 久久久久78| 丝袜喷水在线| 久久色一区| 天天看片天天爽| 国产欧美第五页| 综合激情五月丁香| 久久人妻办公室视频| 久久综合激情| 久久超碰、| 久久仑合| AV色图| 加勒比少妇AV婷婷六月天超碰超碰| 毛片视频白嫩| 精品久久久久瑟瑟| 锕锕好爽 死我在线观看| 中出后入| 九九九只有精品| 午夜噜噜噜| 神马午夜久久| 青娱乐亚洲自拍| www.伪伪| 五月婷婷无码| 欧美激情视频一区二区三区不卡| 97青娱乐超碰久久| 国产精品久久泡妞网站| 欧美18老人禁| 日韩丰满熟妇| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 日本一区二区三区欧美日韩中文字幕| 欧美999999| 欧美黑人168页欧美黑人167| 久久久人妻| 亚洲精品一区二区日本| 日韩不卡av一二三| 吻戏激情性巴克| 婷婷五月天久久精品视频一区二区三区| 九九英色视频| 婷婷10月天青娱乐| 蜜臀一区二区三区在线| 国产黄色 A 片免费看| 婷婷五月色| 91大神电影天堂| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 玖日综合网| 欧美日本不卡在线| 日韩成人精品| 人妻少妇精品一区二区三区| 欧美精品91| 久久九九精品一区二区| 在线中文字幕| 久久久久久国产精品| 精品福利视频| 99精品人妻| 一区二区三区免费岛国片| 视频二区美腿丝袜制服人妻欧美| 人人摸人人舔一区二区| 国产精品久久久无码aV去| 国产做?爰片久久毛片?片美国| 亚洲欧洲小说图片视频 | 91精品国产91久久福利| 美女午夜福利免费视频| 大香蕉欧美国产日韩高潮| 人妻黑丝袜电影| 成人免费看吃奶视频网站| 亚洲熟妇一,二,三期| 岛国视频一二三区| 日韩久久三区| 91精品导航| 久操操AV电影| 九九九九九九九九九九九免费国产| 天天操天天看| 免费αV在线视频| 6080yy午夜理论三级一区二区三区无码| 婷婷丁香久久| 91九色丰满高潮| 男女无套 免费网站| 免费视频a级毛片免费视频| 亚欧美天堂在线| 91色宗合| 大香樵伊人网| 久久久久白虎| 久久99亚洲精品久久99果| 男人的天堂欧美| 精品玖九九久| 丁香五月偷拍| 少妇熟女一区二区三区| 九九热男人天堂| 97国产综合欧美| 婷婷丁香五月天综合东京热| 国产传媒一区日韩| 久久精品黄色| 日韩av熟女一区二区三区成人| 精品人妻视频一区二区在线播放 | .精品人妻一区二区三| 蜜桃久久综合视频| 国产精品成久久久久午夜午夜| 久操操AV电影| 91精品国产长腿丝袜美女| 国产精品人人爽人人做可爱福利| 熟妇精品juliaannAV| 91网站18| 中文字幕综合人妻| www色日本| 超碰午夜| 男女激情黄色网址| 国产综合久| 婷婷性爱| 欧美色图电影| 大香蕉之青青草原| 国语国产操逼伊人AV网| 91精品婷婷国产综合久久| 小视频玖玖| 日日夜夜模| 狠狠色噜噜狠狠狠狠狠色综合久久 | 超碰天天操| 夜夜操青青草| 亚洲自拍青操视频| 亚洲春色激情小说| 超碰欧美| 加勒比伊人综合| 国产成人亚洲精品无码古代早漏男 | 日韩大香蕉AV影片| 亚洲精品1区| 99视频这有这里有精品| 无码人妻毛片丰满熟妇精品区| 国产女人成人精品视频| 91国产操逼视频| 亚洲国产一区二区三区在线| 91在线精品| 99热婷婷一区二区三| 高清不卡一二三区视频......| 亚洲欧美成人网站AAA| 欧美情色男人的天堂| 约操熟妇| 日韩视频中文字幕| 国产亚洲日本| 一品道视频一区二区三区| 国产又色又粗又黄又爽| 老司机福利青青草| 嫩草 我啊~嗯~在线| 97资源视频| 97国伦国色| 婷婷中文网| 久这精品中文在线观看视频| 国产怡红院在线| 亚州国产精品乱| 太久视频| 一级AV性爱| 成人一二三区| 伊人991| 亚洲五月丁香花狠狠干一区二区三区| 亚洲国产成人7777| 探花视频免费观看国产专区| 中国熟妇| 大香蕉一人| 天天淫人人妻日日色| 久久精品店| 日韩兔费看黄片| 蜜桃精品一区二区三区久在线| 久久五月份| 久久‘黄片视频| 91一区二区三区蜜桃| 日本在线伊人啪啪| 欧美国产操逼| 丰满人妻一区| 白丝jkav| 操死我了嗯嗯嗯| 九九在线视频| 美女黄页| 99无码| 91精品丝袜在线观看| 92性色国产午夜福利在线661| 综合色区偷拍| 精品丰满熟妇人妻一区| 蜜桃臀久久| 久久久久久久久久黄色网| 色97| 性色一线| 蜜臀精品1区2区| 麻豆这里只有精品| www色婷婷| 日本三级A片网站com| 无码高清操逼网址| 男女性感激情网站| 制度丝袜99| 一级片在线观看高清无码| 国产精品高清2021在线| 欧亚无码视频| 久久无码成人| 久久美女国产| www.99热| 日日干夜夜干| 91在线|亚| 女人爽到高潮潮喷18禁网站| 天天夜夜久久| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 激情网色| 五月天丁香婷婷综合网站| 白天啪啪晚上啪啪视频| 国产尤物AV尤物在线观看不卡| 久草福利在线资源站| 亚洲精品啪视频| 国产精品福利视频| 成在线人在线观看视频| A片三级无码| 91超级碰| 超碰性爱97| 亚热日本熟女| 九久久精| 婷婷久久五月综合激情| 岛国片国产成人亚洲播放| 日韩美女操b| 久久九九网| 亚州色交| 97午夜剧场日韩| 亚洲精品色| 国产青一二三| 午夜精品久久久99热蜜桃的功能特点| 少妇久久久久久久久| 色图综合网| 日韩一级成人毛片免费观看| 九九色婷婷| 亚洲情色五月天 | 欧洲亚洲天堂精品| 亚洲综合婷婷| 国产视频三区四区| 国产中文字幕在线观看| 综合色欧美| 九九热久久99精品re| 丰满少妇乱子伦精品无| 91成人国产综合久久精品蜜月| 东京热99999| 丁香色狠狠色综合久久小说| 欧美三级中文字幕hd| AV色天香在线| 不卡视频一区蜜桃视频| 日本亚洲熟女视频| 色噜噜国产在线| 久久久亚洲熟妇资源| 亚洲国产丝袜熟女av| 亚洲图片欧洲图片aⅴ| 红杏大香蕉| 狠狠操狠狠燥| 97无码视频在线播放| 97最新在线播放视频| 青青色综合| 夜夜精品视频| 亚洲九区| 免费在线视频97| 午夜超爽| 亚洲欧美日韩电影网站一区 | 色原狠狠天天天| 翔田千里AⅤHD无码| 久久东京国产精品视频| 台湾佬中文娱乐网久久久久久久久久com | 色情综合网| 久久久噜噜噜久久人妻| 欧美爱三级日韩久久| 丰满人妻一区二区三区四| 精品中文日韩字幕视频| 亚洲国产成人精品999| 丁香五月激情综合| 午夜一区| 色婷婷在线视频| 麻豆色99999| 国产AV色黄看到爽| 久久久久久久六六 | 激情综合五月| 天天干夜夜操一区二区| 韩国一级婬片A片AAAAA| 精彩久久中文| 久操婷婷| www.av不卡中文字幕| 欧美日韩色综合网| 性生活无遮挡纯毛片在线看| 欧美另类精品xxxx| 日韩精品人妻中文字幕久久久| 日韩操啪| 欧色综合| 黄色AAAAA欧美| 久久免费看高潮毛片韩国| 九九碰九九爱97超碰| 欧美 青青草| 久久AV无码AV| 久久夜精品一区二区三区| 99老司机精品视频在线观看| 亚洲在钱| 六月婷婷综合| 秋霞操逼片| 日日橹狠狠爱欧美超碰| 99久久久er直播网址| 少妇99| 农村妇女一级二级三级视频| dy888午夜老子影视达达兔| 亚洲av热热色| 成人av影院在线观看| 中文欧丝袜诱惑| 亚洲色图日韩精品| 91精品国产91久久青草| x97av| 女人午夜视频777| 91宗合网| 欧洲与亚洲欧美精品中文字幕| 在线观看成人性爱免费小视频| 亚洲色入欧美| 久久人妻视频| 日本人妻最新在线中| 韩国国产欧美情侣视频在线| 欧美顶级黄色大片免费| 久久婷婷电影网| 日韩 女同 综合| 性爱综合网| 国产一区自拍欧美日韩| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 国产99999| 欧美精品人妻视频| 日韩成人大片一区二区| 欧美性第一页| 玖色av| 亚洲一区二区三区久久 亚洲一区二区| 国产精品探花色| 91在线精品| 97人人操人人摸| 97精品97久久| 99久久婷婷丁香| 久久久久久综合久久伊人蜜月| 亚洲第一页欧美| 国产免a费看黄片在线| 97天天| 精品美女在线视频| 97久久精品亚洲| 日本操逼视频导航| 狠狠色噜噜狠狠狠狠2018| 亚洲国产亚洲天堂| 久久九精品| 色性综合| 天天干一区二区| 久久精品一区二区一8| 美女黄页网站| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 久久透逼视频| 久操免费观看| 97久久国产精品女不卡| 我爱搞逼综合网| 日本不卡高清免v欧美日韩在线观看| 成人七区| 色综合av男人天堂| 国岛片视频| av天堂天堂av日韩| 激情黄色片在线观看| 蜜臀久久99精品久久久久| 日本一卡二区在线| 亚洲AV在线资源| 久久久久9999精品九九九| 炮色五月| 欧美九九99久久精品| 深爱激情五月天| 成片免费观看视频大全| 干婷婷综合网| 婷婷丁香熟妇综合网| 99操碰| 欧美成人一区二区三区在线播放| 天美麻花大全视频| 九九aV| 91丨熟女丨丰满熟女| 五月婷婷丁香中文字幕| 免费伦费视频在线观看| www黄片免费看com| 色综合网1| 日韩女模中文造逼| 婷婷久草| 中文字幕88av在线| 男人的天堂VA在线| a人片中文字幕一区二区| 97爱碰| 综合激情一一91| 亚洲加勒比色图| 无码人妻毛片丰满熟妇精品区| 97国产精选| 91热色| 久久二| 亚洲巨爆乳一区二区三区四季网| 国产精品露脸在线观看| 国产九九九九九九九九| 91|九色|国产熟女| 人人澡人人爽人人精品| 人妻无码久久一区二区三区免费| 国产情色第一第二页在线观看| 九九九精品一区二区无码| 欧美人妻熟女在线| 日韩三级伦理中文字幕| 久思思热视频在线观看| 国产精品三级视频网站| 97超碰jingpin| av72网| 九草九九九| 夜夜爽夜夜爽| 日韩人妻播放| 国产精品色色| 色五月激情AV在线| 久9精品| 综合久久久久久久综合网| 最新中文字幕在线亚洲| 吻戏激情性巴克| 97国产色图 | 亚洲第一黄色av网站| 丁香五月激情综合| 9久精品视频在线观看| 51一区二区三区| 国产成久久综合片| 夜色AV无码手机在线影院| 91精品国产综合久久久蜜臀| 青青欧美| 久久久久亚洲三级电影| 深夜国产一区二区三区在线看| 夜夜肏2021| 人人操人人精品影片| 五十路熟女人妻一区二区在线观看| 国产亚洲欧美每日在线| 在线黄页看毛片| 国产AV线| 性饥渴少妇av无码毛片| 啊啊啊啊啊操我视频| 漂亮人妻被强中文字幕hd| 日韩操逼性鲍| 久久一区无码| 色吧91| 99热66| 美女丝袜激情小说| 久操凹凸视频| 爽爽歪在线视频| 亚洲欧美综合网 | 五十路熟女工口| 丝袜足交视频| 久久婷五月天| 蜜臀99久久精品久久久久久| aaa亚无码专区| 精精夜夜| 日韩欧无码一区二区三区免费不卡| 亚洲日韩国产欧美综合v| 婷婷精品国产一区二区三区日韩| 97手机日韩| 久久久久久久一级黄色打同平台| 久久亚州大香蕉| 国产呦精品一区二区三区下载| 大香蕉琪琪日本女优不卡| yw尤物av无码点击进入麻豆| 一区二区三区日韩欧美| 亚洲91在线| 91久久精品国产| 粉嫩av一区二区三区天美传媒 | 国产深喉| 久久久国产成人一区二区三区在线| 91熟女.com| 夜嗨影院| 丰满人妻-区二区三区免费看| 伊人黄色片| 久久一本大香蕉| 色色色色网站| 97欧美日韩综合| 91neishe| 日本精品一级二级三级| 中 文字幕一区二区三四 五 区日 日 骚 | 嫩呦国产一区二区三区AV| 熟女天天干| 中文字幕一区电影在线观看| 亚洲资源吧| 欧亚免费视频| 亚洲影院成人| 亚爽爽爽爽爽爽爽爽| 福利在线观看一区二区| 欧美色图20P| av操操不卡| 色官网色综合| 蜜臀在线网站| 91人妻丝袜无码| 乱伦一区二区三区‘| 91天天c| 久久久久久AV无码免费网站| 人妻五十路在线| 日本亚洲熟女视频| 无码不卡亚洲成?人片| 欧美国产视频| 精品毛片久久久精品毛片| 国产白丝av| 天堂伊人久久| 五月婷婷五月天| 天天色天天干天天爱| 天天草AV| 91视频观看网站| 蜜乳AV一区| 97碰| 中文字幕国产| 久久亚洲不卡一区二区三区| 人人透人人操| 亚洲最新Av| 不卡视频一区蜜桃视频 | 啊啊啊啊啊啊啊网址在线观看| 五月综合色| 久久久国产av美女私房| 97精| 青女在线| 啊啊啊啊啊操我视频| 色吧综合网| 日本乱人伦片中文三区| 我想要 啊 啊 啊| 久久99精品国产| 白丝1区2区3区| 国产精品国产拍高清AV| 人人看人人爰人人操| 在线视频97| www.acm成人黄色毛片| 国产av热热色| 久久久婷| 蜜桃传媒一区二区亚洲| 极品五月天噜噜| 国产AV超爽| 国产精品蜜乳AV| 亚洲免费成人在线高清无码视频| 欧美日韩中文字幕人妻| 久热热| 淫穴高潮色图| 俺去啦自拍| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 天天看特黄的免费网站| 婷婷色香| 中文字幕91综合| 美国美女AV在线| 囯产操逼片| 欧美网站免费| 中国探花熟女| 欧美性爱十八禁| 久草福利在线资源站| 久久无码成人| 99久久精品国产高潮| 婷婷丁香五月天亚洲天堂网| 免费看国产曰批40分钟怎么下载| 国产午夜激片Av毛片不卡| 超碰97中文| 国产福利合集| 亚洲一区操| 91啦人妻| 奇米狠999| 中文字幕久久婷婷丁香五月天| 九九亚洲| 老司机天天操| 成人性爱av.com| 亚洲美女自拍偷拍视频| 免费精品中文字幕| 久久精品国产亚洲AV片多多| 中日亚韩免费视频| 老司机射| 九九碰九九爱97| 久9视频| 深爱五月天| 日韩草久视频| 丝袜综合色图| 日日干男人的天堂| 青草香蕉网| 亚洲人91| 亚洲美女高潮喷水视频| 欧美视频一| 国产Aα| 强奸xx国产| 亚洲综合在线高清| 日日日骚女人精品| 亚洲天天自拍| 香蕉黄色一级视频| 亚洲一本大道中文字幕无码在线| 97超碰色五月| 综合91网| 久久久999| 92人人操人人| 亚洲图片欧美日韩| 精品一二三区女同| 久久影视二区三区行押| av毛片aaaaa免费看| 美国日韩黄色片| 人妻天堂综合网| 久日综合网| 久久久久九九九| 污污汅18禁网站在线永久免费观看| 99∨VTV| 欧美日韩国产电影| 91视频综合网| 久久久97| 精品人妻一区二区乱码一区二区| 欧美激情视频一区二区| 日本高清_区二区三区| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 老熟妇一区二区三区啪啪| 欧美九九九九九| 免费A V在线播放| 女同在线视频一区| 国产97av| 人妻一区二区三区四区视频| 国产精品免费美女视频| 色天堂综合| 欧美人妻少妇| 婷婷五月综合在线| 亚洲久草AV色图| 国产亚洲性生活视频播放| 久久久蜜桃一区二区三区| 国产av色网| 97在线视频观看网站| 麻豆AV一区二区| 久久9久久| 在线不卡视频| 久久成人东京热人妻| 在线免费观看日韩一区| 日本精品国产视频| 青青免费在线视频一区| 天天色香欲综合网| 中欧人妻丝袜中文字幕| 欧美丰满熟妇XXXX性ppX人交| 91国内外在线| 欧美系列在线一区二区| 裸体美女久久久| 波多野结衣一级视频| 欧美亚洲一区二区久久久婷精品大包诱| 国产国产亚洲一二三久久| 国产又色又爽又舒服的三级视频| 久久AV色| 天天做日日爱夜夜爽| 欧美在线第五页| 青娱乐亚洲自拍| 欧美性视频二区三区| 亚洲无码?第一页| 日韩精品人妻中文字有码在线 | 99色视频| 97干色| 九九久久一区二区三区| 九九九九9999| 超碰1024久久| 欧美成人性爱视频免费观看| 亚洲综合大片| 99热综合| 天天日天天干少妇日| 九九九九88| 激情网色| 91劲爆| 农村妇女一级二级三级视频| 亚洲中文字幕在线视频一区二区| 嗯嗯啊啊操死我| 亚洲AV无码翔田千里网站| 久久久专区| 亚洲,日韩,欧美,成人播放| 大香蕉宅男伊人| 欧美日韩国产黄色片| 9 9无尺码天堂网| 在线99热| 欧美一品道| 天天综合色| 久久有码视频| 狠狠躁AV| 日韩不卡在线一区二区| 九九久久国产精品怡红院| 九九综合| 97资源久久| a人欧美综合天堂麻豆| 欧美狠狠| 97超碰免费生活| 婷婷五月天社区| 日本一区二区三区免费观看| 中日韩久久久免费看| 日本丝袜美腿人妻九九| 波多野结衣先锋影音| 精品国产乱码久久久久久网站入口| 妇人噜噜| 任你艹| 国内毛片婷婷六月色| 激情小说亚洲色图| 国产精品在线一区二区| 欧美亚男人的天堂| 无码操逼网| 欧美色青| 97K超碰在线| 中文在线久久字幕| 老女人爆菊| 日本色色色| 为用户提供免费看黄网址在线观看| 天天操天天舔| 伊人久大| 久久精品视频在线观看| 人妻天堂综合网| 立川理惠无码一区二区| 成人精品在线免费视频| 91欧美情色| 国产精品久久久久久久久久二区三区| 97精彩视频网站| 久久婷色| 久久久婷婷婷| 日本操逼视频导航| 八戒无码国产午夜福利| 91精品人| 四虎在线视频| 婷婷久久久精品| 本道在线| 96久久久精品| 亚洲九九夜夜| 熟女六十路| 一级片在线观看高清无码| 色逼综合| 91色夜| 大香网伊人久久综合网eew| 国模一区二区三区| 国产在线76页| 无码99| av天堂影视中文在字幕在线中文| 久久久精品国产亚洲AV无码| 中文字幕日本久久| 免费A V在线播放| 8050无码八戒| 爽 好舒服 无码刺激久久| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久老女人| 99久久久无码国产精品性啊聊| 99热一区二区三区四区| 超碰地址久久| 色吧 综合| 无码天堂| 91人妻最真实刺激绿帽| 中文字幕一区二区日韩网| 91欧美综合| 国产午夜精品在线观看| 综合久久久久久久久91| 久99在线免费观看视频| 青青草好吊色| 黄片视频观看| 高清无码久操视频| 国产91精品福利在线| 国产女性无套 免费观看| 日韩精品 视频一区二区| 性爱av在线免费观看| 五月天色图影视| 精品久久一区二区三区四区五区| 殴美日韩m| 91九九九吃| 欧美精品丝袜久久久中文字幕| 亚洲欧洲无码97久久精品| 日本黄色XXX| 人人搡人人肉久久精品| 日本免费二区三区| 亚洲欧美日韩偷拍色图| 97天天| 国产成年女人免费视频播放a| 久久夜黄色无码A级大片| 欧美自拍偷拍综合图片| 丁香五月激情综合国产| 91国产丝袜足交精品视频| 色精品极品| 青娱乐大香蕉| 后入人妻无码| 婷婷在线视频在线观看| 性爱精品一区| 少妇同性| 97久久超碰日韩精品| 欧美日本成人一区二区| 国产三级日产三级韩国三级| 大稥蕉免费视频这里只有精品| 亚洲码和欧洲精品激情系列| 97 国产精品| 久草尤物| 亚洲AV永久无码一区仙野| 嫩草 人人网精品| 91无码人妻精品一区二区三区蜜桃 | 日本一区二区亚洲综合| 国产成人bd在线观看| 天天爱天天韩国日本牛牛牛牛| 成人久久精品| 91精品人| 欧美精品1区2区3区| 久久曰曰| 三久久久四久久久久| av天堂精品久久| 亚洲天堂另类美腿| 少妇大屁屁| 欧美探花网| 加勒比无码一区二区三区| 免费久久9999| 欧美写真视频一区| 日韩乱插| 欧美国产操逼| 97资源制服丝袜| 女人18精品一区二区三区| 在线亚洲 欧美 日本专区| 美女被艹尤物视频| 欧美论理片| 亚洲视频1区| 伊人97色天使| 蜜臀久久久99久久久久 | 亚洲,欧美,综合网| 久热香蕉精品在线视频| 中文在线久久字幕| 色综合一区二区三区| 色五月婷婷色| 五月天九九日国产精品一区二区三区| 国产丝袜美女在线一区| 快点操死我| 在线午夜成人无码视频| 色综合99| 玖玖久久久| 天天插天天插| 午夜亚洲| 99热这里| 欧美日韩97| 台湾佬激情综合| 天天干18禁| 国产精品天美传媒| 亚洲精品97| 熟妇人妻精品一区二区视频色欲| 97久久国产| 91 手机在线播放 绯色| 日本不卡免费二区| 久久无码电影| 综合熟妇一区二区三区| 超碰在线国产| 清纯唯美综合亚洲| 97色色视频| 91美女在线观看| 欧美日韩m| 国产精品一区二区久久精品| 啊啊啊啊二区好大| 人妻一区视频| 中文字幕伊人| 五月天开心网| 密乳视频在线| 国产精品久久发布| 一级二级三级黑人无码| 2017超碰| 浪人综合网| 中日韩久久久免费看| 99热这里只有精品8| 日本一二区不卡| 久久久com| 人人妻人射| 黄色成年| 狼人综合婷婷激情四射 | 人妻人人澡人人爽人人| 日韩欧美俄罗斯A片| 中文字幕av一区二区三区人妻少妇| 婷婷久草| 国产成人超碰在线| 日日夜夜噜| 色墦五月丁香| 中文字幕美女91| 国产欧美日产一区二区三区 - 国产欧美日| 中文字幕av亚洲在线| 亚洲影视综合| 中文字幕人乱码中文字的预防方法 | 日本操逼视频不卡直接放| 狠狠爱夜夜干| 色香阁在线| 国产一级作爱毛片| 91老司机精品| 精品国产AV一区天美传媒| 成人免费看吃奶视频网站| 超碰在线看| 97人人干| 精品偷拍13p欧美dodk视频| 色五月AV在线| 国产女人91精品嗷嗷嗷嗷| 超碰成人人人爽人人爽| 亚av顶级裸体一区二区三区四区五区| 日韩激情啪啪| 一级性爱视频免费观看 | 一本色道综合久久欧美| 日本ZZ高免费A级视频| 免费看美国人人爽,人人操| 精品亚洲国产成人精品| 超碰色97| 免费草草草草草视频| 大奶啊啊好爽 | 青青草色情网站视频| 九九成人视频| 密乳AV免费观看| 日本不卡二区| 99久在线精品99re8| 日韩懂色网| 大香网伊人久久综合| 一区AV| 成人一二三区| 欧美影音在线| AND人妻系列| 日本片日本片祼观看网站在线看中文版网页在线看 | 嗯……啊…嗯嗯…啊…好舒服| 亚洲欧美一区二区三区一猛片| 精品视频一区二区| 久久久性爱| 97精品在线| 超碰中文字幕人妻草一区| 狠狠操狠狠爱| 婷婷在线精品| 午夜福利精品| 亚一综合久久久久久久久久| 欧美人妻少妇| 欲香欲色综合天天伊人| 人人爱夜夜爱| 亚洲AV秘 精品久久老牛影视| 欧美色图综合| 亚洲图片91| 夫妻AV网站| 天天综合站| 素颜老阿姨乱情色| 欧美熟妇亚洲版| 久久亚洲骚逼综合| 神马精品视频| 9999免费精彩视频| 强奸乱伦麻豆| 日韩性爱再线视频| 国产 日韩 欧美高清| 九月激情婷婷| 最新亚洲人成网站在线影院| 国产成久久综合片| 国产精品久久久| 欧美精品三级黄片| 人人操人人色网| 日韩免费在线观看不卡| 欧美性第一页| 久久精品国产精品一区| 久久久久久精| 国产福利视频精品视频| 国产高清自拍视频| 91一区二区三区蜜桃| 小说区 图片区色 综合区| 欧美岛国精品在线观看| 我要去看2个日本美女.com曹逼| 亚洲婷婷综合网| 成人午夜高潮av猛片| 亚洲av国产av综合av卡| 一个色导综合| 夜夜狼人妻| 嗯嗯啊啊啊好舒服| 伊人aaa| 97欧美色综合| 福利五区| 久久精品一区二区一8| 久久久性| 精品国产一区二区三区香蕉欧美| 亚欧视频在线| 91九色网| 嗯嗯啊啊啊好舒服| 天天内射| 好色美女九七第一页| 97国产人人| 国产综合色精品在线观看| 国产免a费看黄片在线| 天天做天天爱夜夜爽毛片试看| 911av网站免费观看| 亚洲经典啪啪| 欧美色图亚洲色图成人在在线| 大香蕉欧美国产日韩高潮| 97超碰欧美手机在线| 国产一区在线播放| 最新av中文字幕高清| 成人av动漫在线观看| 四虎影视在线| 久久成人精品| 伊人加勒比| 天天干人人干天天日97| 中文字幕狠狠玩| 亚洲情色婷婷五月天| 人人操人人射人人干| 在线不欧美| 亚洲欧美国产成人综合不卡| 五月丁香色综合| 亚洲性综合| 中文字幕乱亚洲美女精品一区| 日逼视频日本| 天天爱天天韩国日本牛牛牛牛| 伊人伊人LD| 亚洲清纯唯美| 亚洲97成人在线观看| 激情小说五月天| 麻豆伊人网| 欧美色宗合| 亚洲欧美日韩精品久| 99re95| 蜜臀久久99精品久久久久久婷婷| 日本视频一区二区三区| 人人人人人人少妇| nuu12国产麻豆精品| 九九综合久久中文字幕| 欧美激情综合色综合啪啪五月| 国产人妻精品一区二区三区秋霞 | 白丝被操91| 99免费在线视频| 韩日巨乳美女免费视频在线观看| 曰韩中文人妻视频| 日韩精品中文字幕二区| 天天看高清麻豆| 欧洲一区二区三区四区在线观看| 亚洲性爱电影| 熟女自慰久久久| 精品对白久久不卡| 啪啪综合网| 九七人妻在线| 久干9操| 欧美午夜色妇色鬼| 欧美18老人禁| 超碰爽人妻熟女Av| 久久伊人影院| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 黄页视频网站野外| 熟妇亚洲一区二区三区| 91日韩国产欧美亚洲另类精盘州至城都 | 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧美狠狠狠| 秋霞免费AV| 97超碰免费人人性爱| 日本人妻丰满熟妇久久久久久| 超碰碰碰碰| 91无码人妻精品一区二区三区蜜桃| 久久黄色性爱视频| 伊人成人中文字幕久久网| 色噜噜日韩精品| 91狼人| 死我十八禁| 97在线精品| 国产深喉视频一区二区| 天天爽天天爽| 超碰97亚洲| 久久久九97| 国产拍偷精品网站| 午夜精品久久久久久久99热影院| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 蜜臀99999| 日日噜噜夜夜狠狠视频无| 亚洲黄色网址| 操逼无码一区| 漂亮人妻被强中文字幕hd| 日本三级日本三级99| 亚洲久9| 亚洲操操| 精品无码久久久久久久杏吧| 亚洲欧洲精品成人| 吖在线不卡一区二区国产剧情 | 嫩呦国产一区二区三区AV| 国产亚洲日本| 久热伊人| 91精品国产一区三一| 刺激性视频黄页| 操操吧亚洲乱伦视频| 后入福利视频| 粉嫩国产精品久久粉嫩| 91春色| 欧美综合 站| 亚洲无码一区二区三区三州| 性欧美91| 75大香蕉| 国产三级日产三级韩国三级| 妇女一区二区三区| 96AV精品| 岛国黄色短视频| 大香蕉狠狠爱| 情色av电影| 欧美中出1| 91日韩| 婷婷九月丁香| 国产自产91区13区| 激情综合二| 84YTCOM性无码| 中文字幕88av在线| 精品成人av一区二区三区在线| 欧美性天天| 天美传媒av在线| 国产精品久久发布| 日本成熟少妇A∨网站| 92大香蕉| 激情文学欧美| 欧美精品999| 日韩欧美成人午夜福利| 日本男人天堂| 加勒比五月天| 亚洲熟女综合| 一块操欧美| 久草视频在线视频在线视频在线观看| 91亚洲人| 97超碰总站| 爱爱动态试试看6 0秒| www.婷婷| 成人性爱av.com| 国产美女口爆吞精视频| 麻豆激情综合| 天天干天天日天天射黄色大片 | 10000部十八禁看电影| 一本道综合色图| 亚洲第一免费视频| 日韩欧美性吧婷婷乱伦大香蕉| 亚洲 欧美 日本 国内 首页| 麻豆福利视频导航| 久久最新免费视频23| 人人干人人操人人..com| 婷婷久久五月综合激情| 亚洲交性| 人妻无码一区二区三区久久99| 天天综合网入口~91| 久久久9品一区二区三区| 久久一区二区三区入口| 亚洲国产ⅴ高清在线观看| 91A欧美电影网站| 很狠操| 欧洲精品一二三在线| 夜夜操av亚洲一区二区| 91原创在线观看| 91 亚洲 欧洲| 亚洲成av人片色午夜乱码| 欧美性爱系列| 亚洲操逼无码| 国产精品麻豆视频网站| 秋霞成人一级在线观看| 强奸乱伦AV一天堂网| 国产老女人久久毛| 超碰地址久久| 亚洲综合校园春色| 欧美综合 站| 伦理日韩国产久久| 伊人991| 国产性爱欧美性爱在线| 91路www| 性生活无遮挡纯毛片在线看| 国产熟女精品区| 亚洲Av噜噜一区二区三区妖精| 久久久久久大| 青青草在线视频欧美| m欧洲一级午老| 激情终合网| 一区二区视频你懂的| jiujiujiujingpin| 亚洲成人日韩小说|