javascript - Puppeteer cors 错误
问题描述
你好,我在使用 puppeteer 的代码中有问题,cors 错误是随机发生的,但在我的 80% 的测试中。这是我的代码,感谢您的帮助。顺便说一句,服务器响应是
访问在“ https://secure-store.nike.com/eu/services/jcartService/?action=addItem&rt=json&country=GB®ion=eu&lang_locale=en_GB&catalogId=1&productId=12238990&qty=1&skuId=21502246 ”从来源“ https:// /www.nike.com '已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
const puppeteer = require('puppeteer');
const jsonfile = require('jsonfile')
function evaluate_click(element,page){
page.evaluate((el) => {
el.click()
},element);
}
async function bot(){
const browser = await puppeteer.launch({headless: false})
const page = await browser.newPage()
setTimeout(function(){
browser.close()
},120000)
await page.goto('https://www.nike.com/gb/launch/t/air-max-deluxe-midnight-navy-laser-orange-persian-violet/')
await page.waitForSelector('button.ncss-btn-accent.ncss-brand.pt3-sm.pb3-sm.pt2-lg.pb2-lg.u-uppercase.ta-sm-c.u-full-width')
await page.click('button.ncss-btn-accent.ncss-brand.pt3-sm.pb3-sm.pt2-lg.pb2-lg.u-uppercase.ta-sm-c.u-full-width')
await page.waitFor(1000)
await page.waitForSelector('button[aria-haspopup="true"]')
await page.click('button[aria-haspopup="true"]')
await page.waitForXPath("//ul[contains(@class,'')]//li[11]//button[1]")
var select_size = await page.$x("//ul[contains(@class,'')]//li[11]//button[1]")
await evaluate_click(select_size[0],page)
await page.waitFor(1000)
await page.waitForSelector('button.ncss-brand.ncss-btn-black.pb3-sm.prl5-sm.pt3-sm.u-uppercase.u-full-width')
await page.click('button.ncss-brand.ncss-btn-black.pb3-sm.prl5-sm.pt3-sm.u-uppercase.u-full-width')
await page.waitForSelector('a[data-qa="checkout-link"]')
await page.click('a[data-qa="checkout-link"]')
}
机器人()
解决方案
您可以将--disable-web-security
标志传递puppeteer.launch()
给禁用网络安全:
const browser = await puppeteer.launch({
args: [
'--disable-web-security',
],
headless: false,
});
推荐阅读
- airflow - 气流网络服务器导致操作系统崩溃
- reactjs - 如何防止轮播内容重叠显示
- sql - 如何调试表v$object_usage中找不到索引条目的索引监控问题?
- python - 比较 Pandas 列以评估它们是否包含相同的数字或一组数字
- sql - 需要根据 sql oracle 中的输出将损失或收益显示为单独的列
- ios - 快速绘制具有十个或更多控制点的圆圈
- angular - 锚标记href中带有三元运算符的条件url抛出Parse Error Angular
- networking - 带有 CIDR 表示法的 IP 地址的子网编号是多少:172.20.0.0/27
- sql - 分组时的 SQL Server 条件行总和
- json - Pyspark 在数组中添加额外的双引号以节省时间