https://bck.hermes.cn/products?locale=cn_zh&category=WOMENBAGSBAGSCLUTCHES&sort=relevance
用puppeteer試過了,爬取不到
uj5u.com熱心網友回復:
// 'use strict';
var https = require('https') //Node.js提供了http模塊用于搭建HTTP服務端和客戶端
var fs = require('fs')
var path = require('path')
var cheerio = require('cheerio')
// var url = 'http://www.xbiquge.la/21/21549/10832214.html' //需要扒的站的網址
var options = { //抓資料請求頭,模擬一個瀏覽器訪問
hostname: "www.9zgg.com",
path: '/list-select-id-2-type--area--year--star--state--order-addtime.html',
port: 443,
method:"GET",
headers:{ //可以根據network中頁面檔案的請求頭改寫
// 'connection': 'keep-alive',
'sec-fetch-mode': 'navigate',
'user-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36',
'upgrade-Insecure-Requests': '1',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'
}
};
https.get(options,function(res){ //設定請求
res.setEncoding('utf-8')
var html = ''
res.on('data',function(data){
html += data //字串的拼接
})
res.on('end',function(){ //在頁面訪問結束后的回呼函式
var courseData = filterChapters(html) //用一個陣列接受 獲取頁面資料方法回呼的資料
let content = courseData.map((o)=>{ // 將獲取到的資料json格式化
return JSON.stringify(o) // JSON.stringify() 方法用于將 JavaScript 值轉換為 JSON 字串。
})
fs.writeFile('./222.json',content, function(err){ //檔案路經,寫入的內容,回呼函式 將json匯入到222.json檔案
if(err) throw new Error ('寫檔案失敗'+err);
console.log("成功寫入檔案")
})
})
}).on('error',function(){
console.log('獲取資源出錯!')
})
function filterChapters(html) {
var $ = cheerio.load(html) // 加載需要的html,然后就可以愉快地使用類似jQuery的語法了
var chapters = $('.col-xs-2') //在html里尋找需要的資源的class
var courseData = [] // 創建一個陣列,用來保存資源
chapters.each(function(item, index) { //遍歷我們的html檔案
var chapter = $(this) //接下來就用jQuery的方法去獲取頁面中需要抓資料的標簽
// console.log(chapter.children('p').find('.continu').text())
var chapterTitle = chapter.children('p').find('img').attr('alt') //標題
var tvUrl = chapter.children('p').find('a').attr('href').split('show/')[1] //跳轉鏈接
var imgUrl = chapter.children('p').find('img').attr('data-original') //圖片鏈接
var updateStatus = chapter.children('p').find('.continu').text() //更新到第幾集
var type = '電視劇' //視頻型別
var url = `http://www.m4yy.com/show/${tvUrl}` //把跳轉鏈接拼接成完整的URL
courseData.push({
chapterTitle: chapterTitle,
tvUrl: tvUrl,
imgUrl: imgUrl,
updateStatus: updateStatus,
type: type,
url: url
})
})
return courseData //回傳需要的資源
}
以前寫過這么一個DEMO,回傳的資料大概就是
{
"chapterTitle": "只走花路吧",
"tvUrl": "35222.html",
"imgUrl": "https://ae01.alicdn.com/kf/H93a96eef530d40e88b6c053b6568ec67W.png",
"updateStatus": "\t \t更新至109集",
"type": "電視劇",
"url": "http://www.m4yy.com/show/35222.html"
},
{
"chapterTitle": "一個都不能少",
"tvUrl": "36947.html",
"imgUrl": "https://p.ssl.qhimg.com/d/dy_98699842cc2aa1d066b321e543acffcc.jpg",
"updateStatus": "\t \t 更新至23集\n ",
"type": "電視劇",
"url": "http://www.m4yy.com/show/36947.html"
},
這樣的JSON
uj5u.com熱心網友回復:
cheerio爬不到的uj5u.com熱心網友回復:
你下個谷歌插件 efhelper 這個不是可以直接下載的嗎,自動美化,然后又下載功能轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/9077.html
標籤:JavaScript
上一篇:vue 依賴項問題
