【问题标题】:How to loop through an array on Apify?如何遍历 Apify 上的数组?
【发布时间】:2018-09-29 17:33:32
【问题描述】:

我正在抓取 Sainsbury's,这是我的起始 URL:https://www.sainsburys.co.uk/shop/gb/groceries/meat-fish/all-chicken-44?fromMegaNav=1#langId=44&storeId=10151&catalogId=10123&categoryId=310864&parent_category_rn=13343&top_category=13343&pageSize=36&orderBy=FAVOURITES_ONLY%7CSEQUENCING%7CTOP_SELLERS&searchTerm=&beginIndex=0&hideFilters=true

我希望在页面上显示类别、子类别和子类别以及每个项目的价格、标题和图像 src。

我当前的代码返回(以 JSON 格式)产品标题、价格和图片。它还返回我正在爬取的页面的类别、子类别和子子类别。我希望返回每个产品标题、价格和图片旁边的类别,但不确定如何设置循环来执行此操作。

function pageFunction(context) {
// called on every page the crawler visits, use it to extract data from it
var = context.jQuery; var result = []; (".article").each( function() {
result.push({

        title : $(this).find(".productNameAndPromotions:eq(0) a:eq(0)").text(),
        price : $(this).find(".pricePerUnit:eq(0)").text(),
        image : $(this).find('img').attr('src'),
        
        category : $(this).find('span:eq(1)').text(),
        subcategory : $(this).find('span:eq(3)').text(),
        subsubcategory : $(this).find('span:eq(5)').text(),
        subsubsubcategory : $(this).find('span:eq(7)').text()
     
   });
  });
return result;}

这是我的代码返回的内容

JSON Result

我该怎么做?

【问题讨论】:

  • 您能否在此处添加对您的代码返回内容的描述?
  • 代码返回(以 JSON 格式)产品标题、价格和图片。它还返回我正在爬取的页面的类别、子类别和子子类别。我希望返回每个产品标题、价格和图片旁边的类别,但不确定如何设置循环来执行此操作。

标签: javascript jquery web-scraping web-crawler apify


【解决方案1】:

您可以将类别和子类别放在每个范围之外。

function pageFunction(context) {
    // called on every page the crawler visits, use it to extract data from it
    var $ = context.jQuery;
    var results = [];
    var categoty = $('category selector').text().trim();
    var subCategory = $('subCategory selector').text().trim();
    var subsubcategory = $('subsubcategory selector').text().trim();
    var subsubsubcategory = $('subsubsubcategory selector').text().trim();
    (".article").each( function() {
        results.push({
            title : $(this).find(".productNameAndPromotions:eq(0) a:eq(0)").text(),
            price : $(this).find(".pricePerUnit:eq(0)").text(),
            image : $(this).find('img').attr('src'),
            category : categoty,
            subcategory : subCategory,
            subsubcategory : subsubcategory,
            subsubsubcategory :subsubsubcategory
        });
    });
    return results;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2015-12-17
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多