部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料

栏目: JavaScript · 发布时间: 8年前

内容简介:誰說只有美食旅遊類文章才需要做資訊整理,許多讀書心得筆記除了撰寫摘要、抒發心得之外,也會附上整理好的書籍資訊,就像我之前這篇,還順便放上博客來推薦碼 (雖然沒什麼人點就是了XDD)這些資料基本上不會有太多變化,大多是到博客來的書籍介紹頁面複製貼上過來,不過每次都要自己手動整理真的很麻煩,有沒有比較輕鬆快速的方式呢?

誰說只有美食旅遊類文章才需要做資訊整理,許多讀書心得筆記除了撰寫摘要、抒發心得之外,也會附上整理好的書籍資訊,就像我之前這篇,還順便放上博客來推薦碼 (雖然沒什麼人點就是了XDD)

部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料

這些資料基本上不會有太多變化,大多是到博客來的書籍介紹頁面複製貼上過來,不過每次都要自己手動整理真的很麻煩,有沒有比較輕鬆快速的方式呢?

通常在做分享的時候,頂多也就一兩本書,不需要同時間大量抓取,所以我們還不用搬出爬蟲技巧,直接透過 JavaScript 來幫我們整理資訊就可以了。以下這個小程式,可以直接在網頁上整理出書籍資料,效果就像這樣 (右下方會出現一個框框讓你複製)

部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料

使用方式

到博客來隨便找一本書試試看,比如這個

請支持《傑瑞窩在這》原創文章。原文標題:<a href="https://jerrynest.io/js-book/">部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料</a>,原文網址:<a href="https://jerrynest.io/js-book/">https://jerrynest.io/js-book/</a>
https://www.books.com.tw/products/0010796370?loc=P_asb_001

以 Windows 版本的 Chrome 為例,打開「開發人員工具」或按下 F12 快捷鍵 ,在 Console 輸入下方程式碼:

javascript: (function() {
  const content = {};
  function parseData() {
      content['書名'] = document.querySelector('.type02_p002 h1').textContent;
      content['原文書名'] = document.querySelector('.type02_p002 h2').textContent;
      const list = document.querySelectorAll('.type02_p003 li');
      const author = Array.from(list).find(e => e.textContent.includes('作者'));
      content["作者"] = author ? author.querySelectorAll('a')[3].innerHTML : "";
      const originalAuthor = Array.from(list).find(e => e.textContent.includes('原文作者'));
      content['原文作者'] = originalAuthor ? originalAuthor.querySelector('a').innerText : "";
      const translator = Array.from(list).find(e => e.textContent.includes('譯者'));
      content['譯者'] = translator ? Array.from(translator.querySelectorAll('div a')).map(e => e.innerText).join('、') : "";
      const publisher = Array.from(list).find(e => e.textContent.includes('出版社'));
      content['出版社'] = publisher ? publisher.querySelectorAll('div a span')[0].textContent : "";
      const date = Array.from(list).find(e => e.textContent.includes('出版日期'));
      content['出版日期'] = date ? date.textContent.replace('出版日期:', '') : "";
  };
  function toCssString(obj) {
      let text = "";
      for (key in obj) {
          if (obj[key]) {
              text += key + ':' + obj[key] + ';';
          }
      }
      return text;
  }
  function display(content) {
      const box = document.createElement('div');
      const boxStyle = {
          width: '30%',
          height: '200px',
          padding: '20px',
          'background-color': '#555',
          position: 'absolute',
          bottom: '0',
          right: '0',
      };
      box.style.cssText = toCssString(boxStyle);
      const textarea = document.createElement('textarea');
      textarea.style.width = '100%';
      textarea.style.height = '100%';
      textarea.style.zIndex = 100;
      let text = "";
      for (key in content) {
          if (content[key]) {
              text += key + ':' + content[key] + '\n';
          }
      }
      textarea.appendChild(document.createTextNode(text));
      const injectPoint = document.querySelector('body');
      box.appendChild(textarea);
      injectPoint.appendChild(box);
  };
  parseData();
  display(content);
})();

如下圖,按下 Enter 執行程式碼後,就會看見右下角有小框框出現啦 部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料

你甚至可以把它設置為書籤,之後就不用每次都要找這段程式碼使用了。把剛剛那串程式碼貼在網址欄就行囉

部落客、書評必備!透過 JavaScript 抓取並整理博客來書籍資料


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

C#入门经典

C#入门经典

[美] Karli Watson、Christian Nagel / 齐立波、黄静 / 清华大学出版社 / 2008-12 / 118.00元

这是一本成就无数C#程序员的经典名著,厚而不“重”,可帮助您轻松掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程序员首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程序员》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET......一起来看看 《C#入门经典》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器