selenium跨域请求问题

无法使用requests请求


ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-web-security"); // don't enforce the same-origin policy
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--user-data-dir=~/chromeTemp"); // applicable to windows os only
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");

这种方法在我调用本地浏览器的情况下是无法使用的,我这边是selenium执行js代码 使用XMLHttpRequest 发送请求,但是遇到跨域有啥解决方案么,
目前使用window.open是可以获取到数据的,但是不能一直频繁打开新页面再关闭

添加那个选项后可以跨域的,题主怎么用的,示例代码如下
需要注意获取返回值要return TB(url)

from selenium import webdriver
import time

opt = webdriver.ChromeOptions()
opt.add_argument("--disable-web-security")
driver = webdriver.Chrome(options=opt)
driver.get('http://www.w3dev.cn/')

time.sleep(3)
url='https://www.baidu.com/'
js = '''
        url = '%s'
        function TB(url) {
            var httpRequest = new XMLHttpRequest()
            httpRequest.open('GET', url, false)
            httpRequest.send()
            var data = httpRequest.responseText
            return data
        }
        return TB(url)
    '''%url

html=driver.execute_script(js)
print(html)

img

跨域请求应该用python中的requests
不要用js代码发跨域请求

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632