Пишу код который проверяет действительность ссылок, он переходит по страницам и в зависимости от сайта проверяет условия
При переходе по ссылкам некоторых сайтов драйвер страницу прогружает а код дальше не выполняет и просто стоит пока не перезагружу страницу через F5 либо пока не завершу выполнение
Код писал на скорую руку не судите строго, спасибо!:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import pandas as pd
from datetime import *
import time
import os, sys
driver_path = ''
path = os.getcwd()
os.chdir(path)
option = Options()
option.add_experimental_option("excludeSwitches", ["enable-logging"])
option.add_argument("--disable-infobars")
driver_path = 'Здесь путь до драйвера'
class Find:
@staticmethod
def x(xpath):
return driver.find_element(By.XPATH, xpath)
Find = Find()
links_to_check = []
try:
with open(r'Файл_с_ссылками.csv', 'r', encoding="utf-8") as file:
for i in file.readlines()[1:]:
if i!='\n':
links_to_check.append(i.replace('\n',''))
except:
print('\nНе удалось открыть файл.')
sys.exit()
print(links_to_check)
uncorrect_links = []
# -------------------------------- #
def check(links_to_check):
for i in links_to_check:
print('\n', i)
if i != '':
time.sleep(2)
""" Ошибка здесь, после get останавливается на определённых ссылках даже до if не доходит """
driver.get(i)
time.sleep(2)
# -------------------- 1 ----------------- #
""" Это условия для ссылок 1 (на пару из которых код стоит) """
for _ in range(3):
try:
if '1' in i:
print('1')
if "Объявление удалено" in driver.title:
uncorrect_links.append(i)
print('Uncorrect')
break
else:
break
except:
driver.refresh()
# -------------------- 2----------------- #
if '2' in i:
print('2')
if "Страница не найдена" in driver.title:
uncorrect_links.append(i)
else:
try:
text_to_take = Find.x('//p[@class="msg-error-line"]').text
if 'Завершена' in text_to_take:
uncorrect_links.append(i)
except:
continue
# ----------------- 3-------------------- #
if '3' in i:
print('3')
if 'Ошибка' in driver.title:
uncorrect_links.append(i)
else:
continue
# ----------------- 4 -------------------- #
if '4' in i:
print('4')
try:
if 'Объявление не найдено' in Find.x('/html/body/div/div/div/main/section/h1').text:
uncorrect_links.append(i)
except:
continue
else:
continue
# ------------- Start -------------- #
def to_xlsx():
try:
df = pd.DataFrame(
{"Дата": date.today().strftime('%d.%m.%Y'), "Web ссылка": uncorrect_links})
df.index += 1
df.to_excel(f'Uncorrect_Links_{len(uncorrect_links)}.xlsx')
except Exception as e:
print(e)
def start():
global driver
driver = webdriver.Chrome(
executable_path=driver_path,
options=option)
check(links_to_check)
driver.quit()
to_xlsx()
start()