摘要:最近在學習,光看官方文檔比較枯燥,于是想用一個項目把各種框架和技術串聯起來,思來想去覺得爬蟲是一個不錯的。大概思路是這樣固定頻率去爬取新浪財經的頭條新聞,爬到的標題和鏈接以方式推到的中,再通過消費,在中查看。
最近在學習springboot,光看官方文檔比較枯燥,于是想用一個項目把各種框架和技術串聯起來,思來想去覺得爬蟲是一個不錯的idea。
大概思路是這樣:固定頻率去爬取新浪財經的頭條新聞,爬到的標題和鏈接以json方式推到kafka的topic中,再通過ELK消費,在kibana中查看。
首先通過Spring Initializr下載一個demo工程,選擇我們需要的依賴包,jsoup的包需要額外添加。
引入到idea中,修改pom文件,加入jsoup依賴,由于習慣了使用jetty作為web容器,所以把tomcat踢掉,引入jetty的依賴,為了方便處理json,引入fastjson依賴。
quartz的使用可以參考官網文檔,這里我們通過mysql來持久化定時任務相關信息,涉及到mysql,順便把mybatis和druid依賴也一起引入。
quartz相關表的sql在官網的demo里可以找到,這里就略過,假設表已建好。springboot提供了很好的quartz支持,自動配置了一個Scheduler,直接Autowired就可以使用,我們新建一個Service,在系統啟動的時候啟動爬取新聞的定時任務,代碼如下:
假設每30分鐘爬取一次,我們還需要一個Job實現類,來完成具體的爬取任務,也可以通過不同的job來分別爬取,這里就不展開了。Job實現類如下:
在爬網頁之前先看一下每個頁面的結構,以新浪財經為例,地址:https://finance.sina.com.cn/,查看頁面結構可以發現,我們需要的頭條新聞都在“m-hdline”這個class的a標簽下,jsoup的使用比較簡單,根據需要查找對應的文檔就可以了,直接上代碼:
接下來需要將獲取到的數據發到kafka的topic中,我的win10是家庭版,天生不帶docker,我又懶得折騰toolbox,于是搞了個自帶的ubuntu虛擬機,直接下載kafka安裝,然后創建一個topic:financenews。這時候可以將kafka的信息配置在我們的工程中,如下:
springboot也貼心的為我們準備了KafkaTemplate,Autowired即可。這里我們還沒有搭建好elk,可以使用直接監聽定時任務發送到的topic中的消息是否正常。
最后在job中添加發送消息到kafka的處理:
代碼到這里基本差不多了,下面我們啟動應用看看效果:
成功。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/36031.html
摘要:最近在學習,光看官方文檔比較枯燥,于是想用一個項目把各種框架和技術串聯起來,思來想去覺得爬蟲是一個不錯的。大概思路是這樣固定頻率去爬取新浪財經的頭條新聞,爬到的標題和鏈接以方式推到的中,再通過消費,在中查看。 最近在學習springboot,光看官方文檔比較枯燥,于是想用一個項目把各種框架和技術串聯起來,思來想去覺得爬蟲是一個不錯的idea。 大概思路是這樣:固定頻率去爬取新浪財經的頭...
摘要:三實踐案例案例簡介分布式系統中,微服務基礎組件等,系統中間件,等,對常用功能配置等,進行二次淺封裝并統一集成管理,以滿足日常開發中基礎環境搭建與臨時工具的快速實現。 一、背景簡介 分布式系統中存在很多拆分的服務,在不斷迭代升級的過程中,會出現如下常見的棘手情況: 某個技術組件版本升級,依賴包升級導致部分語法或者API過期,或者組件修復緊急的問題,從而會導致分布式系統下各個服...
摘要:本文使用實現對定時任務的增刪改查啟用停用等功能。并把定時任務持久化到數據庫以及支持集群。決定什么時候來執行任務。定義的是任務數據,而真正的執行邏輯是在中。封裝定時任務接口添加一個暫?;謴蛣h除修改暫停所有恢復所有 簡介 Quartz是一款功能強大的任務調度器,可以實現較為復雜的調度功能,如每月一號執行、每天凌晨執行、每周五執行等等,還支持分布式調度。本文使用Springboot+Myba...
摘要:而我這里定時任務的觸發是要通過接口的方式來觸發,所以只用實現以下的調度器即可。我這里簡單說下任務的調度器,具體的任務類,觸發器,任務什么時候執行是由它決定的。遇到的坑解決方式這個是因為不兼容的問題,所以使用是不會出現這個錯誤的。 實現定時任務的幾種方式: 1.使用linux的crontab 優點: 1.使用方式很簡單,只要在crontab中寫好 2.隨時可以修改,不需要...
閱讀 1848·2021-11-25 09:43
閱讀 1490·2021-09-02 15:21
閱讀 3452·2019-08-30 15:52
閱讀 1500·2019-08-30 12:48
閱讀 1294·2019-08-30 10:57
閱讀 2928·2019-08-26 17:41
閱讀 680·2019-08-26 11:59
閱讀 1365·2019-08-26 10:41