需要APIFY抓取数据

时间:2018-05-15 18:50:37

标签: api web-crawler domcrawler apify

我想通过抓取来获取生产的详细信息。我想转到下一页然后回来。我怎么能这样做,因为没有很多参考资料?

function pageFunction(context) {
    // called on every page the crawler visits, use it to extract data from it
    var $ = context.jQuery;
    var results = [];
        context.willFinishLater()
        setTimeout(function(){
            context.saveSnapshot()
            var  U = "";
            if(context.request.label==='START'){
                 $(".wyr8u9C38ajt_81OEEJS0").each(function(){
                    u = window.location.origin + $(this).find('a').attr('href');
                    results.push({
                        //productname: $(this).find('._2zb0403rv6_TmGr5AuQdDL _3ZymdXsJIpZFSdoFz7SXGz _2FhmkzjV0mn3CQVnLDbZX7').attr(src)
                         productname : $(this).find('._10yEIgoNxRH2oiIFjtZAOU').text(),
                         productimage : $(this).find('[property="image"]').css('background-image').replace('url(','').replace(')',''),
                         productcurrency: $(this).find('meta[property="priceCurrency"]').attr('content'),
                         productprice :$(this).find('._2Ke7gNjoZGfGt6jafzQDFK span:nth-child(2)').text(),
                         productrating :$(this).find('._3y-Pd4U1hs-et3GKdZ-Fe- span').text(),
                         producturl: window.location.origin + $(this).find('a').attr('href')

                       //  productdesc : $(this).next('._2ZGju-MCzPFgpryXbE_mgT').html()
                    });
                   // U = window.location.origin + $(this).find('a').attr('href');
                    enqueuePage((window.location.origin + $(this).find('a').attr('href')))
            }); 
            //context.skipOutput();
            }else if(context.request.label==='productlabel'){
                results.push({
                    peter : "43"
                });
            }

            //context.skipOutput();
            //va = context.enqueuePage() 
            context.finish(results);
        },10000);
    return results;
}

1 个答案:

答案 0 :(得分:0)

您的用例是什么?您是否需要将子页面中的数据传递给父级?

通过context.referrer可以获得家长(推荐人)请求。如果您更改uniqueKey,则可以重新入队。

此外,来自推荐人的页面功能结果可通过context.referrer. pageFunctionResult获得。