Как найти неработающие ссылки в Selenium + Python - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь найти неработающую ссылку в Selenium и Python, но получаю сообщение об ошибке в коде:

import requests
from selenium import webdriver

chrome_driver_path = "D:\\drivers\\chromedriver.exe"

driver=webdriver.Chrome(chrome_driver_path)

driver.get('https://google.co.in/')
links = driver.find_elements_by_css_selector("a")
images = driver.find_elements_by_css_selector("img")
for link in links:
    r = requests.head(link.get_attribute('href')
    print(r.status_code == 200)

Не удается найти неработающие ссылки на странице. Есть ли какое-то другое решение?

Получение:

увеличить MaxRetryError (_pool, url, error или ResponseError (причина)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool (host = 'myaccount.google.com', порт= 443): максимальное количество повторных попыток превышено с помощью url: /? Utm_source = OGB & utm_medium = app (вызвано SSLError (SSLEOFError (8, 'EOF произошел с нарушением протокола (_ssl.c: 777)'),))

Во время обработки вышеупомянутого исключения произошло другое исключение:

self._sslobj.do_handshake () ssl.SSLEOFError: EOF произошло с нарушением протокола (_ssl.c: 777)

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний последний вызов):

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

Чтобы узнать статус ссылок на странице, вы можете использовать следующее решение:

0 голосов
/ 10 марта 2019
from selenium import webdriver
chrome_driver_path = "D:\\drivers\\chromedriver.exe"
driver=webdriver.Chrome(chrome_driver_path)
import requests
for link in links:
    r = requests.head(link)
    if r.status_code!=404:
         driver.get(link)
    else:
          print(str(link) + " isn't available.")
0 голосов
/ 25 мая 2018

Из-за Вас отсутствует закрывающая скобка в строке ниже или это опечатка?

r = requests.head(link.get_attribute('href'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...