dms-scrape 0.3.1 → 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.
Files changed (38) hide show
  1. package/README.md +13 -14
  2. package/extractfrombrowser.js +12 -0
  3. package/index.mjs +38 -5
  4. package/lib/array2String.mjs +5 -0
  5. package/lib/determineCategory.mjs +5 -5
  6. package/lib/filterContent.mjs +31 -42
  7. package/lib/processHTML.mjs +39 -71
  8. package/lib/sources.mjs +52 -0
  9. package/package.json +1 -1
  10. package/sources/T1/CTEE.mjs +32 -18
  11. package/sources/T1/DIGITIMES.mjs +18 -4
  12. package/sources/T2/CHINATIMES.mjs +36 -17
  13. package/sources/T2/NXTAPPLE.mjs +30 -0
  14. package/sources/T3/SETN.mjs +35 -0
  15. package/sources/T5/CNYES.mjs +25 -0
  16. package/sources/T5/COMPOTECHASIA.mjs +30 -0
  17. package/sources/T5/INSIDE.mjs +15 -0
  18. package/sources/T5/SAYDIGI.mjs +22 -0
  19. package/sources/T5/TECHBANG.mjs +20 -0
  20. package/sources/T5/TECHORANGE.mjs +23 -21
  21. package/test/cnyestest.js +814 -0
  22. package/test/compotechtest.js +561 -0
  23. package/test/insidetest.js +1399 -0
  24. package/test/saydigitest.js +1000 -0
  25. package/test/techbangtest.js +1109 -0
  26. package/test/techrangetest.js +3101 -0
  27. package/test/tested/chinatest.js +4761 -0
  28. package/test/tested/cteetest.js +1406 -0
  29. package/test/tested/digitest.html +1789 -0
  30. package/test/tested/digitimes2.js +2218 -0
  31. package/test/tested/nextapple.js +1546 -0
  32. package/test/tested/setntest.js +2728 -0
  33. package/test.mjs +61 -12
  34. package/sources/T1/digitimes.html +0 -2598
  35. package/sources/T1/digitimes2.html +0 -2567
  36. package/sources/T5/TECHBANG(unfinished).mjs +0 -13
  37. /package/{sources/T1 → test/tested}/digitimes3.html +0 -0
  38. /package/{sources/T1 → test/tested}/digitimes4.html +0 -0
@@ -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
- let data = {};
3
- data["title"] = $("h1.elementor-heading-title").text();
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
- // $("div.elementor-widget-container > p").each((index, element) => {
15
- // if (
16
- // !$(element).text().trim().startsWith("還在靠社群媒體") &&
17
- // !$(element).text().trim().startsWith("訂閱即同意") &&
18
- // !$(element).text().trim().startsWith("*本文開放")
19
- // ) {
20
- // data["content"].push($(element).text().trim());
21
- // }
22
- // });
23
- return data
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
  }