用 X 射线刮网
Scrape web with x-ray
我正在使用 X 射线从网站中提取一些数据,但是当我要使用内置功能抓取到另一个页面时,它根本不起作用。
UnitPrice 是我要提取的参数,但我一直得到“undefined”。
如您所见,我正在传递先前在 url 属性 上提取的 href 值。
var Xray = require('x-ray');
var x = Xray();
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
x('https://www.simply.es/compra-online/aceite-vinagre-y-sal.html',
'#content > ul',
[{
name: '.descripcionProducto | whiteSpaces',
categoryId: 'input[name="idCategoria"]@value',
productId: 'input[name="idProducto"]@value',
url: 'li a@href',
price: 'span | cleanPrice',
image: '.miniaturaProducto@src',
unitPrice: x('li a@href', '.precioKilo')
}])
.paginate('.link@href')
.limit(1)
// .delay(500, 1000)
// .throttle(2, 1000)
.write('results.json')
有一个解决此问题的拉取请求。同时,您可以使用仅一行代码的解决方案。看到这个:
我正在使用 X 射线从网站中提取一些数据,但是当我要使用内置功能抓取到另一个页面时,它根本不起作用。
UnitPrice 是我要提取的参数,但我一直得到“undefined”。
如您所见,我正在传递先前在 url 属性 上提取的 href 值。
var Xray = require('x-ray');
var x = Xray();
var x = Xray({
filters: {
cleanPrice: function (value) {
return typeof value === 'string' ? value.replace(/\r|\t|\n|€/g, "").trim() : value
},
whiteSpaces: function (value) {
return typeof value === 'string' ? value.replace(/ +/g, ' ').trim() : value
}
}
});
x('https://www.simply.es/compra-online/aceite-vinagre-y-sal.html',
'#content > ul',
[{
name: '.descripcionProducto | whiteSpaces',
categoryId: 'input[name="idCategoria"]@value',
productId: 'input[name="idProducto"]@value',
url: 'li a@href',
price: 'span | cleanPrice',
image: '.miniaturaProducto@src',
unitPrice: x('li a@href', '.precioKilo')
}])
.paginate('.link@href')
.limit(1)
// .delay(500, 1000)
// .throttle(2, 1000)
.write('results.json')
有一个解决此问题的拉取请求。同时,您可以使用仅一行代码的解决方案。看到这个: