我正在研究一个抓电子商务的小项目。
这是代码的一部分:
osmosis
.get(urlPelisBase)
.follow('.separador > div.col-lg-2 a')
.follow('.coco:first a@href')
.delay(2000)
这很好用,但是.follow('.coco:first a@href')
返回此url
"/es-XCL/ProductsAjax/ByBrand/apc?LandPage=True&p=1"
我需要将“ Products”替换为“ ProductsAjax”,我尝试使用以下解决方案:https://github.com/rchipka/node-osmosis/issues/61
我已经在这些版本上工作,但是我没有使它们工作
osmosis
.follow('.coco:first a@href').rewrite(function(url) {
// return modified url string
console.log('url: ',url);
callback(url.replace('ProductsAjax','Products'))
})
.find('.coco:first a@href')
.follow('.coco:first a@href').then(function(context,data,next,done){
context.doc().request.url = this.url.replace('ProductsAjax','Products');
data.url = context.doc().request.url.replace('ProductsAjax','Products');
next(context, data);
})
谢谢!
更新
已解决:
.find('.coco:first a')
.get(function(context,data){
//console.log(context.href)
return context.href.replace('ProductsAjax','Products')
})