dms-scrape 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -14
- package/extractfrombrowser.js +12 -0
- package/index.mjs +38 -5
- package/lib/array2String.mjs +5 -0
- package/lib/determineCategory.mjs +5 -5
- package/lib/filterContent.mjs +31 -42
- package/lib/processHTML.mjs +39 -71
- package/lib/sources.mjs +52 -0
- package/package.json +1 -1
- package/sources/T1/CTEE.mjs +32 -18
- package/sources/T1/DIGITIMES.mjs +18 -4
- package/sources/T1/UDNMoney.mjs +3 -3
- package/sources/T2/CHINATIMES.mjs +36 -17
- package/sources/T2/NXTAPPLE.mjs +30 -0
- package/sources/T3/SETN.mjs +35 -0
- package/sources/T5/CNYES.mjs +25 -0
- package/sources/T5/COMPOTECHASIA.mjs +30 -0
- package/sources/T5/INSIDE.mjs +15 -0
- package/sources/T5/SAYDIGI.mjs +22 -0
- package/sources/T5/TECHBANG.mjs +20 -0
- package/sources/T5/TECHORANGE.mjs +23 -21
- package/test/cnyestest.js +814 -0
- package/test/compotechtest.js +561 -0
- package/test/insidetest.js +1399 -0
- package/test/saydigitest.js +1000 -0
- package/test/techbangtest.js +1109 -0
- package/test/techrangetest.js +3101 -0
- package/test/tested/chinatest.js +4761 -0
- package/test/tested/cteetest.js +1406 -0
- package/test/tested/digitest.html +1789 -0
- package/test/tested/digitimes2.js +2218 -0
- package/test/tested/nextapple.js +1546 -0
- package/test/tested/setntest.js +2728 -0
- package/test.mjs +62 -13
- package/sources/T1/digitimes.html +0 -2598
- package/sources/T1/digitimes2.html +0 -2567
- package/sources/T5/TECHBANG(unfinished).mjs +0 -13
- /package/{sources/T1 → test/tested}/digitimes3.html +0 -0
- /package/{sources/T1 → test/tested}/digitimes4.html +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function CNYES($) {
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [{ selector: "title", value: (el) => $(el).text().trim() }],
|
|
4
|
+
date: [
|
|
5
|
+
{
|
|
6
|
+
selector: "p:contains('2024'):first",
|
|
7
|
+
value: (el) => $(el).text().split(" ")[1].split(" ")[0],
|
|
8
|
+
},
|
|
9
|
+
],
|
|
10
|
+
author: [
|
|
11
|
+
{
|
|
12
|
+
selector: "p:contains('2024'):first",
|
|
13
|
+
value: (el) => $(el).text().split(" ")[0].replace(" ", ""),
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
content: [
|
|
17
|
+
{
|
|
18
|
+
selector: "main#article-container section p",
|
|
19
|
+
value: (el) => $(el).text().trim(),
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
});
|
|
23
|
+
data["source"] = "鉅亨網"
|
|
24
|
+
return data;
|
|
25
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function COMPOTECHASIA($) {
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [
|
|
4
|
+
{
|
|
5
|
+
selector: "title",
|
|
6
|
+
value: (el) => $(el).text().trim().replace("_COMPOTECH ASIA", ""),
|
|
7
|
+
},
|
|
8
|
+
],
|
|
9
|
+
date: [
|
|
10
|
+
{
|
|
11
|
+
selector: "span.deta",
|
|
12
|
+
value: (el) => $(el).text().split(" ")[0]
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
author: [
|
|
16
|
+
{
|
|
17
|
+
selector: "span:contains('本文作者:') > a",
|
|
18
|
+
value: (el) => $(el).text().trim()
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
selector: "div.article_wz_text div",
|
|
24
|
+
value: (el) => $(el).text()
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
});
|
|
28
|
+
data["source"] = "智慧電子解決方案設計平台"
|
|
29
|
+
return data
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function INSIDE($) {
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [{ selector: "title", value: (el) => $(el).text().trim() }],
|
|
4
|
+
author: "a.author.url.fn",
|
|
5
|
+
date: [
|
|
6
|
+
{
|
|
7
|
+
selector: "li.post_date:first span",
|
|
8
|
+
value: (el) => $(el).text().replace(/\//g, "-"),
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
content: [{ selector: "section.js-article-content-body p" }],
|
|
12
|
+
});
|
|
13
|
+
data["source"] = "Inside"
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function SAYDIGI($) {
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [{ selector: "title", value: (el) => $(el).text().trim() }],
|
|
4
|
+
date: [
|
|
5
|
+
{
|
|
6
|
+
selector: "meta[property=article:modified_time]",
|
|
7
|
+
value: (el) => $(el).attr("content").split("T")[0],
|
|
8
|
+
},
|
|
9
|
+
],
|
|
10
|
+
author: [
|
|
11
|
+
{ selector: "meta[name=author]", value: (el) => $(el).attr("content") },
|
|
12
|
+
],
|
|
13
|
+
content: [
|
|
14
|
+
{
|
|
15
|
+
selector: "div.cttt > p",
|
|
16
|
+
value: (el) => $(el).text().trim(),
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
data["source"] = "點子生活"
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export function TECHBANG($) {
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [{ selector: "title", value: (el) => $(el).text().trim() }],
|
|
4
|
+
date: [
|
|
5
|
+
{
|
|
6
|
+
selector: "meta[property=article:published_time]",
|
|
7
|
+
value: (el) => $(el).attr("content").split("T")[0],
|
|
8
|
+
},
|
|
9
|
+
],
|
|
10
|
+
author: "a.nickname:first",
|
|
11
|
+
content: [
|
|
12
|
+
{
|
|
13
|
+
selector: "div.article-content > p",
|
|
14
|
+
value: (el) => $(el).text().trim(),
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
});
|
|
18
|
+
data["source"] = "T客邦"
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
export function TECHORANGE($) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
console.log($.html())
|
|
5
|
-
// data["date"] = $("time").text();
|
|
6
|
-
// data["source"] = "科技報橘";
|
|
7
|
-
// data["author"] = $(
|
|
8
|
-
// "span.elementor-icon-list-text.elementor-post-info__item.elementor-post-info__item--type-author"
|
|
9
|
-
// )
|
|
10
|
-
// .text()
|
|
11
|
-
// .trim();
|
|
12
|
-
// data["content"] = [];
|
|
2
|
+
const data = $.extract({
|
|
3
|
+
title: [{ selector: "title", value: (el) => $(el).text().trim() }],
|
|
13
4
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
5
|
+
date: [
|
|
6
|
+
{
|
|
7
|
+
selector: "meta[property=article:modified_time]",
|
|
8
|
+
value: (el) => $(el).attr("content").split("T")[0],
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
author: [
|
|
12
|
+
{
|
|
13
|
+
selector: "meta[name=twitter:data1]",
|
|
14
|
+
value: (el) => $(el).attr('content'),
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
content: [
|
|
18
|
+
{
|
|
19
|
+
selector: "div.elementor-widget-container > p",
|
|
20
|
+
value: (el) => $(el).text().trim(),
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
});
|
|
24
|
+
data["source"] = "科技報橘"
|
|
25
|
+
return data;
|
|
24
26
|
}
|