首頁 > LineNotify X Python(二)爬取新聞與推送格...

LineNotify X Python(二)爬取新聞與推送格式

在上一篇文章(LineNotify X Python打造專屬通知機器人)中提到 Python 如何與 LineNotify 做整合,這篇就要與大家來分享Notify即便拿到數據後,要怎麼做成自己要的展示格式囉!

為何需要調整格式:

如果用手機瀏覽、電腦版瀏覽,每個訊息所顯示的單行長度其實都不一樣,所以這時候就像打文章一樣,需要讓文字到一定程度後就得要換行,避免格式跑掉才行,或是有不同需求所需要衍生出不同的使用方法等等。

故調整格式也就是讓 LINE 通知自己時,自己可以快速瀏覽訊息的方式。我們主要會分成三篇來描述(待補、敬請期待)。

取得新聞資訊:

以鉅亨網當範例,找到頭條網址:https://news.cnyes.com/news/cat/headline?exp=a

找到對應的div:

開始coding囉!

第一步:完成基本import

把該import的丟進來,也把之前提到的LineNotify的函式也丟進來,同時import token

第二步:觀察內容

會發現文章都是在 class=”_2nhA theme-left-col” 的這個設置裡。

第三步:get 相關資訊

第四步:找出前五篇最新的新聞:

將網址與文字分開,並且用find_all的list特性把前五篇找出來,

之後將找出來的內容存在news 的 list 裡面:

第五步:將相關資訊丟給 LineNotify的 函式,就可以在執行後完成傳送囉!

完整程式碼如下:

# 客官以下請自行取用
import requests
from bs4 import BeautifulSoup
from LineNotify import lineNotifyMessage
from config import LineNotify_qp_datacollecting

res =
requests.get(‘https://news.cnyes.com/news/cat/headline?exp=a’).content
soup = BeautifulSoup(res, ‘html.parser’)
go = soup.find(“div”, {“class”: “_2bFl theme-list”})
basic = ‘https://news.cnyes.com’
news = []
for i in range(5):
news.append(
   [
      go.find_all(‘a’)[i].text,
      basic+go.find_all(‘a’)[i][‘href’],
      ‘ ‘
   ]
  )
# print(news)
lineNotifyMessage(LineNotify_qp_datacollecting, news)

小技巧提醒:

之所以要多存’ ‘的空白字串是因為如果不存,那 Line 自己轉成網址的時候,會把不相干的文字也轉成網址。

最後,就成功收到訊息啦!

至於想要排程或是自動化的,就可以去加入time schedule等函式去完成自動執行哦!這篇就到這邊,謝謝大家啦!


量化通粉絲社群,定期分享實用資源
✅加入LINE匿名群組量化通QuantPass」無壓力討論與分享!
✅追蹤量化通的粉絲專頁量化通QuantPass」即時獲取實用的資源!

程式交易課程推薦
📣 Python 程式交易系列線上課程,手把手開始用程式交易打造自己的被動收入!

發表迴響

相關文章