Node.js AWS Lambda/Chromium-定义的功能为;“未定义”;评估期间
我正在尝试使用AWS的Chromium二进制文件从网站上抓取内容并将其放入DynamoDB 下面是AWS Lambda中的函数,尽管定义了函数Node.js AWS Lambda/Chromium-定义的功能为;“未定义”;评估期间,node.js,web-scraping,aws-lambda,amazon-dynamodb,chromium,Node.js,Web Scraping,Aws Lambda,Amazon Dynamodb,Chromium,我正在尝试使用AWS的Chromium二进制文件从网站上抓取内容并将其放入DynamoDB 下面是AWS Lambda中的函数,尽管定义了函数getTS来计算时间戳属性,我还是不断收到错误消息“评估失败:引用错误:未定义getTS” 函数是如何定义的 'use strict' const chromium = require('chrome-aws-lambda'); const AWS = require('aws-sdk'); function getTS(month,day) { v
getTS
来计算时间戳属性,我还是不断收到错误消息“评估失败:引用错误:未定义getTS”
函数是如何定义的
'use strict'
const chromium = require('chrome-aws-lambda');
const AWS = require('aws-sdk');
function getTS(month,day) {
var fullDate = `${month}/${day}/2020`;
var ts = new Date(fullDate).getTime()
return ts-9*3600;
}
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient();
let responseBody = '';
let statusCode = 0;
let result = null;
let browser = null;
try {
browser = await chromium.puppeteer.launch({
args: chromium.args,
defaultViewport: chromium.defaultViewport,
executablePath: await chromium.executablePath,
headless: chromium.headless,
});
let page = await browser.newPage();
await page.goto('SOME_URL');
var res = await page.evaluate( () => {
let results = [];
let patients = document.querySelector('tbody').querySelectorAll('tr');
patients.forEach( patient => {
let formatDate = patient.querySelectorAll('td')[6].innerText.split('.')
let fullDate = `${formatDate[0]}, ${formatDate[1]}`
let timestamp = getTS(formatDate[0],formatDate[1])
results.push({
FullDate: fullDate,
Timestamp: timestamp,
});
});
return results;
});
} catch (error) {
return context.fail(error)
} finally {
if (browser !== null) {
await browser.close()
}
}
let i;
for (i=0; i<res.length; i++) {
const params = {
TableName: 'Items',
Item: res[i]
}
try {
const data = await documentClient.put(params).promise();
responseBody = JSON.stringify(data);
statusCode = 201;
} catch (err) {
responseBody = `Unable to put item: ${err}`;
statusCode = 403;
}
}
const response = {
statusCode: statusCode,
headers: {
'Content-Type': 'application/json'
},
body: responseBody
}
return response;
}
“严格使用”
常量铬=要求(“铬-aws-lambda”);
const AWS=require('AWS-sdk');
函数getTS(月、日){
var fullDate=`${month}/${day}/2020`;
var ts=新日期(fullDate).getTime()
返回ts-9*3600;
}
exports.handler=异步(事件、上下文)=>{
const documentClient=new AWS.DynamoDB.documentClient();
让responseBody='';
设statusCode=0;
设result=null;
让browser=null;
试一试{
browser=等待chromium.puppeter.launch({
args:chromium.args,
defaultViewport:chromium.defaultViewport,
可执行路径:等待chromium.executablePath,
无头:铬,无头,
});
let page=等待browser.newPage();
等待page.goto('SOME_URL');
var res=wait page.evaluate(()=>{
让结果=[];
让患者=document.querySelector('tbody')。queryselectoral('tr');
患者。forEach(患者=>{
让formatDate=patient.querySelectorAll('td')[6].innerText.split('
设fullDate=`${formatDate[0]},${formatDate[1]}`
让timestamp=getTS(formatDate[0],formatDate[1])
结果:推({
FullDate:FullDate,
时间戳:时间戳,
});
});
返回结果;
});
}捕获(错误){
返回上下文。失败(错误)
}最后{
如果(浏览器!==null){
等待浏览器关闭()
}
}
让我;
对于(i=0;i