Всегда получал код ответа 403 при проверке всей ссылки с помощью selenium java

Я сделал скрипт для проверки всех ссылок на одной странице, но все ссылки всегда дают код ответа 403, он будет нормально открываться в браузере, но при проверке его путем получения кода ответа с использованием selenium java всегда дает 403 (Запрещено), я также приношу все куки, но это не работает, если у кого-то есть решение, дайте мне знать. Заранее спасибо. это мой код для хранения всех файлов cookie и внесения их во все проверки ответов на ссылки

private int getHttpResponseStatusCode(String webPageUrl) {
  int ret = -1;
  try {
    if (webPageUrl != null && !"".equals(webPageUrl.trim())) {
      URL urlObj = new URL(webPageUrl.trim());
      HttpURLConnection httpConn = (HttpURLConnection) urlObj.openConnection();
      Set <Cookie> cookies = driver.manage().getCookies();
      String cookieString = "";
      for (Cookie cookie: cookies) {
        cookieString += cookie.getName() + " = " + cookie.getValue() + ";";
      }
      httpConn.addRequestProperty("Cookies", cookieString);
      httpConn.setRequestMethod("HEAD");
      httpConn.connect();
      ret = httpConn.getResponseCode();
    }
  } catch (Exception ex) {
    ex.printStackTrace();
  } finally {
    System.out.println("Http Status Code : " + ret + " , Url : " + webPageUrl);
    return ret;
  }
};

вот как я получаю все ссылки со страницы

private List <String> parseOutAllUrlLinksInWebPage(String webPageUrl) {
  List <String> retList = new ArrayList <String> ();
  if (webPageUrl != null && !"".equals(webPageUrl.trim())) {
    /* Get current page belongs domain. */
    String urlDomain = this.getPageBelongDomain(webPageUrl);
    /* First parse out all a tag href urls. */
    By byUrlLink = By.tagName("a");
    List <WebElement> aLinkList = driver.findElements(byUrlLink);
    if (aLinkList != null) {
      int aLinkSize = aLinkList.size();
      for (int i = 0; i <aLinkSize; i++) {
        WebElement aLink = aLinkList.get(i);
        String href = aLink.getAttribute("href");

        if (href != null && !"".equals(href.trim())) {
          /* Only return same domain page url. */
          if (href.toLowerCase().startsWith("http://" + urlDomain) || href.toLowerCase().startsWith("https://" + urlDomain)) {
            retList.add(href);
          }
        }
      }
    }
    /* Second parse out all img tag src urls. */
    By byImg = By.tagName("img");
    List <WebElement> imgList = driver.findElements(byImg);

    if (imgList != null) {
      int imgSize = imgList.size();
      for (int i = 0; i <imgSize; i++) {
        WebElement imgElement = imgList.get(i);
        String src = imgElement.getAttribute("src");

        if (src != null && !"".equals(src.trim())) {
          /* Only return same domain page url. */
          if (src.toLowerCase().startsWith("http://" + urlDomain) || src.toLowerCase().startsWith("https://" + urlDomain)) {
            retList.add(src);
          }
        }
      }
    }
  }
  System.out.println("Parse out url completed successfully.");
  return retList;
};

Возможно, ваш сервер блокирует запросы HEAD - это ваш сервер? Также где находится JavaScript? Я удалил тег

mplungjan 19.03.2018 07:59

тот же результат с использованием HEAD или GET, это веб-сайт компании, сервер компании, без javascript, извините, это неправильный тег

Didit Setiawan 19.03.2018 08:00

Так что, возможно, все, кроме POST, запрещено

mplungjan 19.03.2018 08:01

да, но всегда получал ответ 403, используя HEAD или GET

Didit Setiawan 19.03.2018 08:06

Так что попробуйте POST ....

mplungjan 19.03.2018 08:06

тот же результат, 403

Didit Setiawan 19.03.2018 08:07

Прочтите это и убедитесь, что ваш URL-адрес действителен lifewire.com/403-forbidden-error-explained-2617989

mplungjan 19.03.2018 08:08

ну, все ссылки генерируются автоматически, поэтому URL-адрес восприятия действителен, но когда я хочу получить код ответа с использованием селена, он даст код 403.

Didit Setiawan 19.03.2018 08:14

Найдите селен 403

mplungjan 19.03.2018 08:29
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
9
332
0

Другие вопросы по теме