最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3爬蟲教程之利用Python實(shí)現(xiàn)發(fā)送天氣預(yù)報(bào)郵件

 更新時(shí)間:2018年12月16日 16:25:54   作者:TM0831  
這篇文章主要給大家介紹了關(guān)于Python3爬蟲教程之利用Python實(shí)現(xiàn)發(fā)送天氣預(yù)報(bào)郵件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧

前言

此次的目標(biāo)是爬取指定城市的天氣預(yù)報(bào)信息,然后再用Python發(fā)送郵件到指定的郵箱。

下面話不多說了,來一起看看詳細(xì)的實(shí)現(xiàn)過程吧

一、爬取天氣預(yù)報(bào)

1、首先是爬取天氣預(yù)報(bào)的信息,用的網(wǎng)站是中國(guó)天氣網(wǎng),網(wǎng)址是http://www.weather.com.cn/static/html/weather.shtml,任意選擇一個(gè)城市(比如武漢),然后要爬取的內(nèi)容為下面的部分:

先查看網(wǎng)頁源代碼,并沒有找到第一張圖中的內(nèi)容,說明是這些天氣信息是通過別的方式加載出來的。我們打開開發(fā)者工具,點(diǎn)擊XHR選項(xiàng),發(fā)現(xiàn)沒有任何內(nèi)容,但是點(diǎn)擊JS選項(xiàng)后可以找到如下內(nèi)容:

然后就是把URL復(fù)制下來進(jìn)行爬取,不過要注意加上User-Agent和Referer字段,而且如果一直用一個(gè)User-Agent的話就會(huì)被識(shí)別出來,所以我們需要定義一個(gè)函數(shù)來返回隨機(jī)的User-Agent以供使用。

def get_agent():
 import random
 user_agent_list = [
  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
  "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
  "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
  "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
  "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
  "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
 ]
 return random.choice(user_agent_list)

爬取后的結(jié)果如下:

{'PM2.5': '158',
'城市': '武漢',
'天氣': '多云',
'日期': '12月16日(星期日)',
'洗車指數(shù)': '無雨且風(fēng)力較小,易保持清潔度。',
'溫度': '12℃',
'相對(duì)濕度': '47%',
'穿衣指數(shù)': '建議著厚外套加毛衣等服裝。',
'紫外線指數(shù)': '涂擦SPF大于15、PA+防曬護(hù)膚品。',
'風(fēng)力等級(jí)': '2級(jí)',
'風(fēng)向': '西南風(fēng)'}

2、我們已經(jīng)能爬取天氣預(yù)報(bào)的內(nèi)容了,但是如果我們想要爬取任意城市的天氣預(yù)報(bào),又要怎么辦呢?

先找?guī)讉€(gè)城市對(duì)應(yīng)的鏈接看一下:武漢(http://www.weather.com.cn/weather1d/101200101.shtml)、廣州(http://www.weather.com.cn/weather/101280101.shtml?)、杭州(http://www.weather.com.cn/weather1d/101210101.shtml),很明顯每個(gè)城市有一個(gè)對(duì)應(yīng)的編碼,而我們只要獲得全國(guó)主要城市的編碼信息,也就能得到這些城市的天氣預(yù)報(bào)了。

這一步花費(fèi)了我不少時(shí)間,問題就在于從哪里得到這些編碼信息,最后找到了一個(gè)辦法。首先是查看國(guó)內(nèi)天氣預(yù)報(bào),當(dāng)我們的鼠標(biāo)移到某個(gè)省的地圖上的時(shí)候,就會(huì)顯示其省會(huì)的天氣情況:

而當(dāng)我們用鼠標(biāo)左鍵點(diǎn)擊的時(shí)候,就能夠查看這個(gè)省的整體天氣情況:

打開開發(fā)者工具,點(diǎn)擊XHR選項(xiàng),可以發(fā)現(xiàn)有如下內(nèi)容,而這些數(shù)據(jù)里就包含著我們需要的編碼信息:

做到這一步我們就可以獲得全國(guó)主要城市的編碼信息了,不過要注意的是,這些編碼并不都是能直接添加到我們的代碼中進(jìn)行使用的,通過觀察可以發(fā)現(xiàn),四個(gè)直轄市的編碼是不需要做改變的,其余的省需要在得到的編碼后面加上一個(gè)01。

二、發(fā)送郵件

要使用Python來發(fā)送郵件,需要使用兩個(gè)模塊:smtplib和email。這兩個(gè)模塊是Python自帶的,只需import即可使用,其中smtplib模塊主要負(fù)責(zé)發(fā)送郵件,email模塊主要負(fù)責(zé)構(gòu)造郵件。

我使用的是163郵箱,用別的郵箱也可以,不過方法會(huì)有所不同。在發(fā)送郵件之前,需要先設(shè)置授權(quán)碼,在設(shè)置完之后,要記住你的授權(quán)碼,在后面會(huì)用到的:

一個(gè)測(cè)試的例子如下:

import smtplib
from email.header import Header
from email.mime.text import MIMEText

sender = "xxx@163.com" # 發(fā)件人的郵箱
password = "xxx" # 這里的密碼不是登陸郵箱的密碼,而是授權(quán)碼
receiver = "xxx@163.com" # 收件人的郵箱,可以是同一個(gè)
mail = MIMEText("這是郵件內(nèi)容", 'plain', 'utf-8') # 郵件內(nèi)容
mail['Subject'] = Header('這是郵件主題', 'utf-8') # 郵件主題
mail['From'] = sender # 發(fā)件人
mail['To'] = receiver # 收件人
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com', 25) # 連接郵箱服務(wù)器
smtp.login(sender, password) # 登錄郵箱
smtp.sendmail(sender, receiver, mail.as_string()) # 第三個(gè)是把郵件內(nèi)容變成字符串
smtp.quit() # 發(fā)送完畢,退出
print('郵件已成功發(fā)送!')

有幾點(diǎn)要注意的是:

(1)mail['From']和mail['To']是一定要加上的,不能省略;

(2)由于使用的是163郵箱,所以連接服務(wù)器的時(shí)候使用的是smtp.163.com;

(3)郵件主題里不要使用“test”,不然會(huì)被標(biāo)記為垃圾郵件。

三、運(yùn)行結(jié)果

首先是程序運(yùn)行的結(jié)果截圖:

然后打開郵箱查看:

完整代碼已上傳到GitHub:https://github.com/QAQ112233/Weather本地下載

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • python實(shí)現(xiàn)楊輝三角思路

    python實(shí)現(xiàn)楊輝三角思路

    本文給大家分享的是作者使用python實(shí)現(xiàn)楊輝三角的思路,非常的實(shí)用,有需要的小伙伴可以參考下
    2017-07-07
  • Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能

    Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能

    這篇文章主要介紹了Python進(jìn)階之自定義對(duì)象實(shí)現(xiàn)切片功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Pycharm使用matplotlib警告\不能顯示的問題及解決

    Pycharm使用matplotlib警告\不能顯示的問題及解決

    在PyCharm中使用matplotlib畫圖時(shí)遇到警告和圖像顯示問題,通過在代碼中添加`mpl.use('TkAgg')`或`plt.switch_backend('TkAgg')`,可以解決警告并彈出顯示完整的圖像窗口,同時(shí),文章還列舉了matplotlib的其他backend選項(xiàng),如Qt4Agg、Qt5Agg、WXAgg等
    2025-02-02
  • python3實(shí)現(xiàn)名片管理系統(tǒng)

    python3實(shí)現(xiàn)名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)名片管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 關(guān)于python中逆序的三位數(shù)

    關(guān)于python中逆序的三位數(shù)

    這篇文章主要介紹了關(guān)于python中逆序的三位數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用

    python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用

    本文主要介紹了python中的[1:]、[::-1]、X[:,m:n]和X[1,:]的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python3+PyInstall+Sciter解決報(bào)錯(cuò)缺少dll、html等文件問題

    Python3+PyInstall+Sciter解決報(bào)錯(cuò)缺少dll、html等文件問題

    這篇文章主要介紹了Python3+PyInstall+Sciter解決報(bào)錯(cuò)缺少dll、html等文件問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python基于進(jìn)程池實(shí)現(xiàn)多進(jìn)程過程解析

    Python基于進(jìn)程池實(shí)現(xiàn)多進(jìn)程過程解析

    這篇文章主要介紹了Python基于進(jìn)程池實(shí)現(xiàn)多進(jìn)程過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python魔術(shù)方法專題

    Python魔術(shù)方法專題

    這篇文章主要介紹了Python魔術(shù)方法的的相關(guān)資料,文章講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • django解決跨域請(qǐng)求的問題詳解

    django解決跨域請(qǐng)求的問題詳解

    這篇文章主要介紹了django解決跨域請(qǐng)求的問題詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論

山阴县| 乐安县| 金阳县| 水城县| 会东县| 临桂县| 鄄城县| 习水县| 广宁县| 昭平县| 韩城市| 威信县| 嘉祥县| 滁州市| 三江| 依安县| 紫阳县| 福安市| 南郑县| 项城市| 新密市| 景德镇市| 阳新县| 吉木乃县| 涟水县| 西城区| 三亚市| 上虞市| 加查县| 嘉峪关市| 金华市| 安仁县| 和龙市| 永泰县| 黄梅县| 永新县| 金溪县| 讷河市| 唐海县| 根河市| 金秀|