首頁  >  問答  >  主體

網頁爬蟲 - 如何使用使用java抓取資訊並製作排名系統?

在學習java web 剛好有一個有趣的專案可以做 。
我們學校需要晨跑刷卡,體育部提供一個查詢網站,但不提供介面。
想做一個網站/微信後台從學校網上抓取資訊儲存到資料庫 然後用戶可以透過我的 網站/微信來查詢自己的跑操記錄。並且根據這些記錄顯示排名 等其他的功能。

查詢只需要提供學號和姓名,這個資料已經有了。

模擬登入 用httpclient 實作。取得了整個頁面
頁面是一個表格顯示記錄。該用什麼從頁面提取資料呢?

關於java web的方向,我只會用jsp 寫一個增刪改查。對於之後的內容不是太懂 。

我要做這樣一個後台管理抓取操作 使用者查詢 返回。
該從什麼地方開始學?或者說使用是什麼樣的技術/框架呢?

關於查詢的網站:
有一個元素是跑操次數。
之後的是對應的記錄 每筆記錄顯示跑操時間 具體到分鐘。

抓取不是最困難的部分,問題是怎麼做一個這樣一個管理系統 對於如何開發一個完整的web全端 沒有思路。
我發現我不能評論。 。 。

謝謝!

迷茫迷茫2686 天前615

全部回覆(4)我來回復

  • PHP中文网

    PHP中文网2017-06-12 09:21:16

    我就隨便說個,因為我也沒想到用什麼方法。

    用Jsoup去爬頁面數據,哈哈

    回覆
    0
  • 代言

    代言2017-06-12 09:21:16

    想到了幾點,簡單說下:
    1.資料抓取,可以自己寫抓取程序,制定資料爬取的時間規則之類的
    2.資料處理,抓取到網頁的內容通過jsoup或其他方式對網頁有效內容提取,並設計資料結構,學號應該是唯一的,可以有學員表和晨跑記錄表,透過學號進行關聯
    3.我的個人理解是按照次數排序,因為想了下,如果按照時間排序是不合理的,因為是沒有辦法判斷真正的晨跑時間的,那我這裡就按次數來說吧,可以直接在學員表存放跑步次數的字段,減少通過記錄表查詢,提高效率,就是需要資料處理時維護此欄位

    回覆
    0
  • 三叔

    三叔2017-06-12 09:21:16

    一般來說呢,是基於httpclient這樣的工具會回傳包拿到,解析封包實體(這裡指html頁),接下來就是利用xpath、正則、類似jQuery方式解析DOM元素取得你想要的資料(如jsoup套件),如果還嫌麻煩可以使用webmagic框架

    回覆
    0
  • 巴扎黑

    巴扎黑2017-06-12 09:21:16

    1. 模擬登陸:用瀏覽器開啟登陸頁觀察接收學號密碼的url;模擬登陸時post資料到該url;從response的header中解析Set-cookie欄位資訊;

    2. 資料抓取:向體育資料頁發起get請求(帶上上一個步驟中拿到的cookie欄位),拿到response,然後進行正規解析取得資料即可;

    建議:快取使用者每次查詢的數據,例如快取2小時,建議使用redis;資料庫可以存查詢到的數據,先從redis中取數據,取不到再模擬登陸拿新數據。至於資料庫這一層,個人覺得可有可無,有的話也可以進行數據分析什麼的

    回覆
    0
  • 取消回覆