燒制網頁RSS源主要有FEED43Huginn兩種方法。

  1. FEED43:簡單免費,六小時抓取一次,每次抓取20條靜態頁面。使用攻略- RSS 入門篇:FEED43&FeedEx-為靜態網頁定製 RSS 源

2. Huginn:自由度高,可設定抓取頻率、內容結構、js結果、輸出樣式等;需要搭建伺服器,學習Huginn抓取規則

Huginn 準備工作

  1. 準備一臺 Debian/Ubuntu 環境的伺服器
  2. 按Qi大的攻略搭建Huginn,也可以直接看Huginn 官方搭建攻略

準備工作完成後,我們已經可以使用 Huginn 抓取頁面了。但很多網站都是用 JS 載入動態內容,需要通過 PhantomJs Cloud 抓取頁面 JS 緩存。

————————

Huginn + PhantomJs Cloud 全網頁抓取

一、Phantom Js Cloud API key 獲取

註冊 PhantomJs Cloud ,然後將 API key 保存在 Huginn 的 Credentials 中。

新建 Huginn 任務組 Scenario 「國內應急新聞」,抓取鏈接 cneb.gov.cn/guoneinews/

二、Phantom Js Cloud Agent 抓取頁面緩存

Name: 國內應急新聞 #1 獲取 JS 緩存

Schedule: Every 1h

三、WebsiteAgent 獲取頁面詳情

Name: 國內應急新聞 #2 抓取全頁

Schedule: Every 1h

四、css path 路徑獲取

  1. 使用火狐瀏覽器打開抓取頁面
  2. 按下F12, 然後點擊 Developer Tools 左上角的檢查指針

3. 選中要抓取的部分

4. 回到 Developer Tools 窗口,右鍵選中的藍色部分,獲取 css path、Xpath。這裡以 css path 為例。

5. 處理 css path 路徑

html body div.area.areabg1 div.area-half.right div.tabBox div.tabContents.active table tbody tr td.red a

css path 原始路徑過長,刪去不帶 .# 的節點(節點間以空格「 」分割),並刪去每個節點在 .#前的第一個標籤,得到:

.area.areabg1 .area-half.right .tabBox .tabContents.active .red a

前半部分對節點定位無用,繼續省略(比如:中國上海,省略掉中國,大家也知道上海在哪)

.tabContents.active .red a

非常規情況處理

a. 有些路徑中的節點帶空格,如<div class="packery-item article">,路徑中的空格由.代替,截取為.packery-item.article

b. 當抓取多種 css path 規則時,用逗號,分割

"css": ".focus-title .current a , .stress h2 a",

五、DataOutputAgent 導出 RSS

Name: 國內應急新聞 #3 排序生成RSS

Propagate immediately: Yes

回到Scenarios, 點擊最後一步的 Actions - Show ,複製導出的xml鏈接 http://xxx.xxxxxx/users/1/web_requests/xxx/xxxx.xml

詳細設置的使用文件-百度網盤下載

其他問題,查看官方說明-PhantomJs Cloud 英文使用攻略


推薦閱讀:
相關文章