峰大爷 2022-06-10 16:49 采纳率: 83.9%
浏览 266
已结题

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是可以获取到数据的,但是不能一直频繁打开新页面再关闭

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-06-10 21:41
    关注

    添加那个选项后可以跨域的,题主怎么用的,示例代码如下
    需要注意获取返回值要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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 修改了问题 6月10日
  • 创建了问题 6月10日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!