gpt4 book ai didi

java - 您可以使用 cookies 绕过 Selenium WebDriver 中的 403 代码吗?

转载 作者:行者123 更新时间:2023-12-01 22:51:24 25 4
gpt4 key购买 nike

我正在使用 WebDriver 通过 img Html 元素的 src 属性访问 url 字符串。但是,当我尝试打开该 URL 的新窗口时,我收到 403 Unauthorized 访问权限,但我不知道如何克服它。我在 stackoverflow 上读过很多帖子,但我看到的最有希望的解决方案是在 URLConnection 中指定 User agent 首选项,但没有效果。到目前为止,这是我的代码:

WebDriver driver = new ChromeDriver();            
String urlSelector = "body > div.overlay > div#cards"+cardID + " > div.one.card > img.core.load.bg.on";
WebElement urlElem = driver.findElement(By.cssSelector(urlSelector));
String url = urlElem.getAttribute("src");
driver.get(url);

编辑:我在另一篇文章中读到,我可能需要将某些 cookie 传递给 URLConnection 以避免 403 响应代码并验证自己的身份。因此,我检查了访问网站时出现的 cookie(使用 WebDriver),结果如下所示:

cookies_one

cookies_two

但是,如果我在普通浏览器(不使用 WebDriver)上打开同一个网站,我会得到一些额外 imgur cookie,它们是列表如下:

cookies_three cookies_four

据我所知,当我点击链接时,Imgur 是该网站用来显示图像的。我还决定在普通浏览器中单击图像的链接后检查 imgur 上的 cookie,我得到了 2 个似乎与数据库相关的 cookie(?):

cookies_five

据您所知,这些 Cookie 中的任何一个都用于对我进行身份验证吗?有没有办法在我的 URLConnection 中使用这些 Cookie 来避免 403 响应代码?

P.S:有问题的网站是这个website

最佳答案

尝试一下(尚未测试):

 WebDriver driver = new ChromeDriver();            
String urlSelector = "body > div.overlay > div#cards"+cardID + " > div.one.card > img.core.load.bg.on";
WebElement urlElem = driver.findElement(By.cssSelector(urlSelector));
String url = urlElem.getAttribute("src");
((JavascriptExecutor)driver).executeScript("img = document.createElement('img');
img.src = '"+ url + "'; img.id='forscreenshot'; document.body.appendChild(img);");
WebDriverWait wait = new WebDriverWait(driver,5);
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.id('forscreenshot')));
File screenshot = element.getScreenshotAs(OutputType.FILE);

关于java - 您可以使用 cookies 绕过 Selenium WebDriver 中的 403 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58456364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com