使用Scraperapi和Google Apps脚本将亚马逊的数据刮入Google表中
#javascript #api #scraping

需要工具

  • Scraper API
  • Google表
  • Google Apps脚本

指南

  1. 使用Scraperapi创建或登录您的帐户。前往仪表板,抓住您的Scraperapi API键。 Scraperapi的免费计划可为您提供5,000个注册的电话。之后,您可以在您的免费计划中获得1,000个电话。
  2. 打开一个新的Google表文件。我的名字:亚马逊Google表格数据。 为了方便我的脚本兼容,我建议您按照图片所示的G-sheets进行结合。但是,如果不想,您总是可以对代码进行调整。
  3. 为了清楚起见,我们的列标题是:S/N,页面ID,产品说明,产品URL,图像,评分,评论和价格。
  4. 为了易于使用,可以在B2单元格中进行搜索键。 让我们编码脚本:
function mainFunction()    
//Attach this function to a trigger of sorts in your Google Sheets
{
    clearRecords();

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var tableSheet = ss.getSheetByName(‘TABLE’);
    var settingSheet = ss.getSheetByName(‘SETTINGS’);
    var searchValue = tableSheet.getRange(1,2).getValue();
    var API_KEY = xxxxx;

    var url = “http://api.scraperapi.com”;
url += “?api_key=”+api_key
url += “&autoparse=true”;
url += “&url=https://www.amazon.com/s?k=”+searchValue;

// fetch data from API
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json);

var item_count = 1;

for (var i = 0; i = data.results.length; i++)
{
var results = data.results;
var name = results[i].name;
var image = results[i].image;
var list_url = results[i].url;
var stars = results[i].price;
var reviews = results[i].total_reviews;

if (stars == null)
{
    stars = 0;
}

if(reviews == null)
{
    reviews = 0;
}

addRecord(item_count, 1, name, list_url, stars, reviews, price);

item_count+
    }

    var pages = data.pagination;

    if(pages.length > 0)
{
    for {var x = 0; x < pages.length: x++)
    {
        Utilities.sleep(2000);

        var url = “http://api.scraperapi.com”;
url += “?api_key=”+api_key
url += “&autoparse=true”;
url += “&url=”+pages[x];


       function clearRecords()
       {
    var ss= SpreadsheetApp.getActiveSpreadsheet();
    var tableSheet = ss.getSheetByName(‘TABLE’);
    tableSheet.gtRange(‘A4:H1000’).clear();
       }

     function addRecord(coun, page, name, image, list_url, stars, reviews, price){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var tableSheet = ss.getSheetByName(‘TABLE’);
    tableSheet.appendRow([count, page, name, image, list_url, stars, reviews, price]);