我正在爬行塞恩斯伯里的,这是我的起始网址: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
我希望显示类别,子类别和子类别,并在页面上显示每个商品的价格,标题和图片来源。
我当前的代码返回(以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;}
这是我的代码返回的内容
我该怎么做?
答案 0 :(得分:0)
您可以只将类别和子类别放在每个范围之外。
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;
}