欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

千鋒扣丁學(xué)堂Python培訓(xùn)之使用python獲取地震信息

2019-06-20 13:47:27 4156瀏覽

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



今天千鋒扣丁學(xué)堂Python培訓(xùn)老師給大家分享一篇關(guān)于Python的爬蟲知識(shí),沒有用大家討厭的正則表達(dá)式,而是用一種新的方式解析庫(kù),實(shí)現(xiàn)對(duì)HTML的解析和提取信息,最后又用到前面項(xiàng)目用過的wxpy庫(kù),實(shí)現(xiàn)了全部功能,用Python獲取地震信息,然后微信實(shí)時(shí)推送給你的群組或你的朋友。

1.前期準(zhǔn)備

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

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

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

通過最近學(xué)習(xí),我知道了在網(wǎng)頁中可以通過Xpath或CSS選擇器來定位一個(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.html?time={int(time.time())}。



2.代碼整合

import requests, time
from lxml import etree
from wxpy import *
# 微信登陸
bot = Bot()
# 查找好友
my_friend = bot.friends().search(u'stormwen')[0] # 寫自己的討論組名稱
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é)果展示



4.總結(jié)

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

以上就是關(guān)于千鋒扣丁學(xué)堂Python培訓(xùn)之使用python獲取地震信息的全部?jī)?nèi)容,希望對(duì)大家有所幫助,想要了解更多關(guān)于Python開發(fā)方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂Python培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的Python講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Python視頻教程定能讓你快速掌握Python從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Python技術(shù)交流群:279521237。


扣丁學(xué)堂微信公眾號(hào)                          Python全棧開發(fā)爬蟲人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)分析免費(fèi)公開課直播間


      【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】         【掃碼進(jìn)入Python全棧開發(fā)免費(fèi)公開課】



查看更多關(guān)于"Python開發(fā)資訊"的相關(guān)文章>

標(biāo)簽: Python培訓(xùn) Python視頻教程 Python在線視頻 Python學(xué)習(xí)視頻 Python培訓(xùn)班

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部