今天沒有什麼前言,就是想分享些關於爬蟲
的技術,任性。來吧,各位客官,裏邊請...javascript
爬蟲
是什麼嘞?首先我們說哈,爬蟲不是「蟲子」,姑涼們不要懼怕。html
爬蟲
- 一種經過必定方式按照必定規則抓取數據的操做或方法。前端
爬蟲
能作什麼嘞?來來來,談談需求java
產品MM:node
研發GG:python
爬蟲
隨時準備爲您服務!數據庫
爬蟲
如何實現嘞?實現爬蟲的技術有不少,如python、Node等,今天胡哥給你們分享使用Node作爬蟲:爬取小說網站-首頁推薦小說npm
目標網站:https://www.23us.so
json
咱們要獲取排行榜中六部小說的:書名、封面、以及小說書籍信息對應的地址(後續獲取小說完整信息)網絡
網頁的內容是由HTML生成的,抓取內容就至關找到特定的HTML結構,獲取該元素的值。
打開網頁調試控制檯
,查看元素HTML結構。
注意觀察頁面HTML的結構,排行榜推薦的小說的HTML結構是
bdo#s-dd 元素 dd 子元素 - 每一部小說 a 目錄信息 img 封面 a 小說名稱
工具善其事必先利其器,準備好趁手的兵器!
superagent
模擬客戶端發送網絡請求,可設置請求參數、header頭信息
npm install superagent -D
cheerio
類jQuery庫,可將字符串導入,建立對象,用於快速抓取字符串中的符合條件的數據
npm install cheerio -D
項目目錄:
node-pachong/ - index.js - package.json - node_modules/
上代碼:
// node-pachong/index.js /** * 使用Node.js作爬蟲實戰 * author: justbecoder <justbecoder@aliyun.com> */ // 引入須要的工具包 const sp = require('superagent'); const cheerio = require('cheerio'); // 定義請求的URL地址 const BASE_URL = 'http://www.23us.so'; // 1. 發送請求,獲取HTML字符串 (async () => { let html = await sp.get(BASE_URL); // 2. 將字符串導入,使用cheerio獲取元素 let $ = cheerio.load(html.text); // 3. 獲取指定的元素 let books = [] $('#s_dd dd').each(function () { let info = { link: $(this).find('a').eq(0).attr('href'), name: $(this).find('a').eq(1).text(), image: $(this).find('img').attr('src') } books.push(info) }) console.log(books) })()
友情提醒:
每一個網站的HTML結構是不同,在抓取不一樣網站的數據時,要分析不一樣的解構,才能百發百中。
效果圖:
獲取到信息以後,作接口數據返回、存儲數據庫,你想幹啥都行...
關注胡哥有話說
公衆號,回覆「爬蟲」,便可獲取源碼地址。
以上就是胡哥今天給你們分享的內容,喜歡的小夥伴記得收藏
、轉發
、點擊右下角按鈕在看
,推薦給更多小夥伴呦,歡迎多多留言交流...
胡哥有話說,一個有技術,有情懷的胡哥!京東開放平臺首席前端攻城獅。與你一塊兒聊聊大前端,分享前端系統架構,框架實現原理,最新最高效的技術實踐!
長按掃碼關注,更帥更漂亮呦!關注胡哥有話說公衆號,可與胡哥繼續深刻交流呦!