日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

使用python獲取(宜賓市地震信息)地震信息

系統(tǒng) 1725 0

6月17日22分25分,四川省宜賓市長(zhǎng)寧縣發(fā)生了6.0級(jí)地震,成都高新減災(zāi)研究所與應(yīng)急管理部門(mén)聯(lián)合建設(shè)的大陸地震預(yù)警網(wǎng)成功預(yù)警本次地震,提前10秒向宜賓市預(yù)警,提前61秒向成都預(yù)警。

使用python獲取(宜賓市地震信息)地震信息_第1張圖片

雖然自己還不能寫(xiě)出這么牛逼的系統(tǒng),但是今天我想結(jié)合自己學(xué)到的Python知識(shí),用Python獲取地震信息,然后微信實(shí)時(shí)推送給你的群組或你的朋友。

1.前期準(zhǔn)備

1.爬蟲(chóng)基本知識(shí),比如requests庫(kù),以及l(fā)xml庫(kù);

2.利用Xpath進(jìn)行HTML的解析;

之前寫(xiě)的一些簡(jiǎn)單項(xiàng)目,提取頁(yè)面信息時(shí)使用的是正則表達(dá)式,但當(dāng)項(xiàng)目復(fù)雜時(shí),用正則表達(dá)式比較煩瑣,萬(wàn)一有地方寫(xiě)錯(cuò)了,可能導(dǎo)致匹配失敗,所以使用正則表達(dá)式提取頁(yè)面信息多多少少還是有些不方便。

通過(guò)最近學(xué)習(xí),我知道了在網(wǎng)頁(yè)中可以通過(guò)Xpath或CSS選擇器來(lái)定位一個(gè)或多個(gè)節(jié)點(diǎn),再調(diào)用相應(yīng)的方法獲取它的正文內(nèi)容或者屬性,可以很方便快捷的提取到我們想要的信息。

3.要實(shí)現(xiàn)微信實(shí)時(shí)推送肯定需要用到wxpy庫(kù);

4.本次項(xiàng)目從中國(guó)地震臺(tái)網(wǎng)爬取地震信息,鏈接為: http:// news.ceic.ac.cn/index.h tml?time= {int(time.time())}。

使用python獲取(宜賓市地震信息)地震信息_第2張圖片 ?

2.代碼整合

            
import requests, time
from lxml import etree
from wxpy import *
# 微信登陸
bot = Bot()
# 查找好友
my_friend = bot.friends().search(u'stormwen')[0] # 寫(xiě)自己的討論組名稱
with open('log.txt', 'r') as f:
  rember = f.readline()
headers = {
  'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
  'cookie': 'Hm_lvt_e0025cd5d352165f8a646ccea5beb27d=1543211803; Hm_lpvt_e0025cd5d352165f8a646ccea5beb27d=1543211803',
}
while True:
  try:
    url = f'http://news.ceic.ac.cn/index.html?time={int(time.time())}'
    # 請(qǐng)求數(shù)據(jù)
    res = requests.get(url, headers=headers).text.encode('ISO-8859-1').decode('utf8')
    html_ele = etree.HTML(res)
    # 返回列表
    res = html_ele.xpath('//*[@id="news"]//td//text()')
    # 如果日志為空,發(fā)送最新的一條地震信息
    if rember == '':
      msg = f'北京時(shí)間:{res[1]},在緯度:{res[2]} ,經(jīng)度{res[3]} 處發(fā)生了{(lán)res[0]}級(jí)地震,震源深度{res[4]}千米,參考位置:{res[5]}(5分鐘更新一次)'
      # 發(fā)送信息
      my_friend.send(msg)
      print('日志為空,msg:', msg)
    # 如果日志非空,就判斷是否是最新的,發(fā)送日志之后的所有新的數(shù)據(jù)
    else:
      i = res.index(rember)
      while i > 1:
        i -= 6
        msg = f'北京時(shí)間:{res[i]},在緯度:{res[i+1]} ,經(jīng)度{res[i+2]} 處發(fā)生了{(lán)res[i-1]}級(jí)地震,震源深度{res[i+3]}千米,參考位置:{res[i+4]}(5分鐘更新一次)'
        # 發(fā)送信息
        my_friend.send(msg)
        print('日志非空,msg:', msg)
    time.sleep(300)
    rember = res[1]
    # 更新日志(記錄最新發(fā)送的地震信息)
    with open('log.txt', 'w') as f:
      f.write(res[1])
  except:
    time.sleep(60)
          

3.結(jié)果展示

使用python獲取(宜賓市地震信息)地震信息_第3張圖片

4.總結(jié)

我一直認(rèn)為語(yǔ)言只是工具,只有用它來(lái)做點(diǎn)具體的事,才體現(xiàn)出它的價(jià)值。今天這個(gè)項(xiàng)目用到了Python的爬蟲(chóng)知識(shí),沒(méi)有用大家討厭的正則表達(dá)式,而是用一種新的方式解析庫(kù),實(shí)現(xiàn)對(duì)HTML的解析和提取信息,最后又用到前面項(xiàng)目用過(guò)的wxpy庫(kù),實(shí)現(xiàn)了全部功能。

以上所述是小編給大家介紹的使用python獲取(宜賓市地震信息)地震信息,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 磴口县| 密云县| 博乐市| 准格尔旗| 辽宁省| 建瓯市| 泸州市| 虹口区| 中卫市| 津市市| 黎平县| 姜堰市| 监利县| 乐平市| 金华市| 贵阳市| 方山县| 新安县| 乌兰县| 天柱县| 汝州市| 赫章县| 鹿邑县| 新乡县| 遂川县| 正蓝旗| 肇庆市| 临泽县| 沅江市| 尼玛县| 平谷区| 丹凤县| 房产| 乌兰察布市| 临潭县| 西吉县| 岑溪市| 鹿邑县| 普洱| 安福县| 恭城|