木偶师CORS错误
你好,我在使用木偶戏的代码中有问题,CORS错误是随机发生的,但在我的测试中有80%是随机发生的。这是我的代码,感谢您的帮助。顺便说一下,服务器的响应是
CORS策略已阻止访问从源‘https://www.nike.com’在‘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’获取:请求的资源上不存在‘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"]')
}
bot()
解决方案
您可以将--disable-web-security
标志传递给puppeteer.launch()
以禁用网络安全:
const browser = await puppeteer.launch({
args: [
'--disable-web-security',
],
headless: false,
});
相关文章