使用渗透功能更改URL

时间:2019-12-30 00:25:57

标签: node.js web-scraping osmosis

我正在研究一个抓电子商务的小项目。

这是代码的一部分:

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')
    })

0 个答案:

没有答案