我有一个使用HTMLParser模块的pythonwebscraper。它的网站是http://consulta.siiau.udg.mx/wco/sspseca.consulta_oferta?ciclop=202120&cup=D&mostrarp=100000&ordenp=2
现在我需要做同样的事情,但是基于web浏览器的使用javascript,所以我尝试使用axios获取原始HTML,但我一直得到“对XMLHttpRequest的访问已被CORS策略阻止”
我试过的是
axios.post('http://consulta.siiau.udg.mx/wco/sspseca.consulta_oferta', {
ciclop: '202120',
cup: 'D',
mostrarp: 10000,
ordennp: 2,
})
.then((response) => {
console.log(response)
})
及
axios.get('http://consulta.siiau.udg.mx/wco/sspseca.consulta_oferta?ciclop=202120&cup=D&mostrarp=100000&ordenp=2',
{ crossdomain: true }
)
.then((response) => {
console.log(response)
})
我知道,在javascript中,他们通常使用无头浏览器,就像Puppeter中的浏览器一样,但是因为这个项目是一个网站 我不能使用Node.js模块
现在,我实现的解决方案是让服务器运行一个FlaskAPI来处理html获取,然后将其发送回客户端进行处理,但是如果客户端能够这样做的话,我的服务器性能将得到缓解
简而言之,您不能使用fetch API或XMLHTTPRequest访问浏览器的跨源策略不允许的资源
出于安全原因,浏览器限制从脚本启动的HTTP请求。web应用程序只能从加载应用程序的同一来源请求资源,除非来自其他来源的响应包含正确的CORS头
您可以使用无头浏览器(Puppeter)访问网页,例如使用:
这相当于将
http://example.com
放入浏览器栏并按ENTER键。该页面上的任何脚本都受到与以前相同的跨源限制。但是,告诉浏览器访问http://example.com
本身并不是跨源请求相关问题 更多 >
编程相关推荐