您好,登錄后才能下訂單哦!
這篇文章主要介紹怎么使用python獲取地震信息,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
6月17日22分25分,四川省宜賓市長寧縣發生了6.0級地震,成都高新減災研究所與應急管理部門聯合建設的大陸地震預警網成功預警本次地震,提前10秒向宜賓市預警,提前61秒向成都預警。
雖然自己還不能寫出這么牛逼的系統,但是今天我想結合自己學到的Python知識,用Python獲取地震信息,然后微信實時推送給你的群組或你的朋友。
1.前期準備
1.爬蟲基本知識,比如requests庫,以及lxml庫;
2.利用Xpath進行HTML的解析;
之前寫的一些簡單項目,提取頁面信息時使用的是正則表達式,但當項目復雜時,用正則表達式比較煩瑣,萬一有地方寫錯了,可能導致匹配失敗,所以使用正則表達式提取頁面信息多多少少還是有些不方便。
通過最近學習,我知道了在網頁中可以通過Xpath或CSS選擇器來定位一個或多個節點,再調用相應的方法獲取它的正文內容或者屬性,可以很方便快捷的提取到我們想要的信息。
3.要實現微信實時推送肯定需要用到wxpy庫;
4.本次項目從中國地震臺網爬取地震信息,鏈接為: http:// news.ceic.ac.cn/index.h tml?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())}' # 請求數據 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()') # 如果日志為空,發送最新的一條地震信息 if rember == '': msg = f'北京時間:{res[1]},在緯度:{res[2]} ,經度{res[3]} 處發生了{res[0]}級地震,震源深度{res[4]}千米,參考位置:{res[5]}(5分鐘更新一次)' # 發送信息 my_friend.send(msg) print('日志為空,msg:', msg) # 如果日志非空,就判斷是否是最新的,發送日志之后的所有新的數據 else: i = res.index(rember) while i > 1: i -= 6 msg = f'北京時間:{res[i]},在緯度:{res[i+1]} ,經度{res[i+2]} 處發生了{res[i-1]}級地震,震源深度{res[i+3]}千米,參考位置:{res[i+4]}(5分鐘更新一次)' # 發送信息 my_friend.send(msg) print('日志非空,msg:', msg) time.sleep(300) rember = res[1] # 更新日志(記錄最新發送的地震信息) with open('log.txt', 'w') as f: f.write(res[1]) except: time.sleep(60)
3.結果展示
4.總結
我一直認為語言只是工具,只有用它來做點具體的事,才體現出它的價值。今天這個項目用到了Python的爬蟲知識,沒有用大家討厭的正則表達式,而是用一種新的方式解析庫,實現對HTML的解析和提取信息,最后又用到前面項目用過的wxpy庫,實現了全部功能。
以上是“怎么使用python獲取地震信息”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。