【发布时间】:2018-05-05 09:11:56
【问题描述】:
我很难弄清楚如何抓取this webpage 以将这份婚礼清单放入我的单页机。起初看起来并不复杂,但是当我进入代码时,我就是无法得到任何结果。
我试过ygrab.js,这很简单,让我找到了某个地方,但是我似乎无法抓取图像,它只在控制台中打印输出(没有太多文档可以继续)。
$(function() {
var $listResult = $('#list-result');
var kado = [];
var data = [
{
url: 'https://www.kadolog.com/fr/list/liste-de-mariage-laura-julien',
selector: '.kado-not-full',
loop: true,
result: [{
name: 'photo',
find: '.views-field-field-photo',
grab: {
by: 'attr',
value: 'src'
}
},
{
name: 'title',
find: '.views-field-title .field-content',
grab: {
by: 'text',
value: ''
}
},
{
name: 'description',
find: '.views-field-body .field-content',
grab: {
by: 'text',
value: ''
}
},
{
name: 'price',
find: '.price',
grab: {
by: 'text',
value: ''
}
},
{
name: 'remaining',
find: '.topinfo',
grab: {
by: 'text',
value: ''
}
},
{
name: 'link',
find: '.views-field-nothing .field-content .btn',
grab: {
by: 'attr',
value: 'href'
}
},
],
},
];
ygrab(data, function(result){
console.log(JSON.stringify(result, null, 2)); //photos = undefined
});
然后是带有 Request 和 Cheerio 的 Node.js(我也尝试过 Crawler),但我不知道 node 是如何工作的。
var request = require("request");
这在控制台中给我一个错误,说 require 没有定义。很公平,我在页面的脚本中添加了 require.js。我收到另一个错误(“未捕获的错误:不匹配的匿名定义()模块:...”)。
我的问题是:是否有一种简单的 Javascript 方式(可能不涉及节点?)来抓取我想要获取的婚礼列表?或者也许是一个类似于我一步一步尝试做的教程?
如果有任何帮助或建议,我将不胜感激。
【问题讨论】:
标签: javascript node.js web-scraping web-crawler