在本節中,我們將講述抓取政府官網地方新聞。並將抓取的新聞數據融入到以下兩張數據表news_site和news中。 ...
概述
在本節中,我們將講述抓取政府官網地方新聞。並將抓取的新聞數據融入到以下兩張數據表news_site和news中。
news_site(新聞來源)
欄位 | 類型 | 說明 |
---|---|---|
id | bigint | 主鍵,自動增長 |
name | varchar(128) | 來源名稱 |
news(新聞)
欄位 | 類型 | 說明 |
---|---|---|
id | bigint | 主鍵,自動增長 |
title | varchar(128) | 標題 |
site_id | bigint | 外鍵,指向表news_site的id欄位 |
content | text | 內容 |
pub_date | datetime | 發佈時間 |
date_created | datetime | 加入時間 |
我們很容易看到這兩張表存在關聯,那是怎樣將數據寫入關聯呢,我們將再此一一介紹。
定義站點、數據集
定義抓取和抽取規則
在這裡我們需要填入口地址。入口地址如果有多個,那麼要以英文逗號相隔。如下圖所示:
接下來我們編寫規則時,首先是匹配URL,這裡需要填寫正則表達式。旁邊的“?”號,點擊後就會彈出相應的幫助文檔。如下圖所示:
然後數據集選擇則我們要註意,如果抓取的僅需要的是鏈接,那麼是否數據集選擇否,且數據集欄位必須要有一個名為href的欄位。如下圖所示:
否則是否數據集應該選擇是,且數據集欄位必須要有一個名為sn的欄位。sn欄位存放的數據一般是唯一值,相當於數據表裡的id欄位。如下圖所示:
完整的規則內容顯示如下:
[
{
__sample: http://sousuo.gov.cn/column/40520/0.htm
match0: http\:\/\/sousuo\.gov\.cn\/column\/40520/\d+\.htm
fields0:
{
__model: false
__node: .news_box a
href:
{
expr: a
attr: abs:href
js: ""
__label: 鏈接
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
}
}
{
__sample: http://www.gov.cn/xinwen/2019-02/26/content_5368539.htm
match0: http\:\/\/www\.gov\.cn/xinwen/2019-\d{2}/\d{2}/content_\d+.htm
fields0:
{
__model: true
__dataset: news
__node: ".article "
sn:
{
expr: ""
attr: ""
js:
'''
var xx=md5(baseUri)
xx
'''
__label: 編號
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
title:
{
expr: .article >h1
attr: ""
js: ""
__label: 標題
__showOnList: true
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
pubdate:
{
expr: .pages-date:matchText
attr: ""
js: ""
__label: 發佈時間
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
source:
{
expr: .pages-date > span.font:contains(來源)
attr: ""
js:
'''
var xx=source.replace("來源:",'');
xx
'''
__label: 來源
__showOnList: true
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
content:
{
expr: .pages_content
attr: ""
js: ""
__label: 新聞內容
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
}
}
]
配製和啟動抓取器
一個抓取器可以配製抓取多個站點,一個站點也可以配製多個抓取器抓取。
然後點擊“開始”,則會啟動抓取器。
查看和導出數據
可以按照搜索條件進行導出數據。選擇“導出”按扭後,還將提示導出哪些數據段,最後導出文件。 如果數據少量,將會導出為excel文件,否則下載的打包之後的zip文件。如下圖所示:
本節內容描述到這裡,下一篇將講述如何通過金色數據如何將數據融合到數據表當中去。