Я использую Selenium и Python для парсинга нескольких страниц. Я хочу использовать параллелизм, но мои прокси выдают «ошибка: нет адреса прокси». Это потому, что я использую Selenium и незамеченный веб-драйвер? Что мне следует изменить?
Я использую Selenium и Python для парсинга нескольких страниц. Я хочу использовать параллелизм, но мои прокси выдают «ошибка: нет адреса прокси». Это потому, что я использую Selenium и незамеченный веб-драйвер? Что мне следует изменить? [code]from concurrent.futures import ThreadPoolExecutor, TimeoutError import time import random import undetected_chromedriver as UC
# Define WebDriver path and proxy settings (masked for privacy) webdriver_path = "\\path\\to\\chromedriver.exe" proxies = [ "http://username:password@proxy1.example.com:port", "http://username:password@proxy2.example.com:port" ]
try: # Initial setup with local connection if flag == 1: data = scrape_urls(drivers[2], unique_urls[0], flag=1) if data: results.append(data) flag = 0 # Reset flag after initial setup
with ThreadPoolExecutor(max_workers=3) as executor: futures = [] for i, base_url in enumerate(unique_urls): if url_exists_in_existing(existing_urls, base_url): continue
driver = drivers[i % 3] # Rotate drivers for each URL future = executor.submit(scrape_urls, driver, base_url, flag=0) futures.append(future)
for future in futures: try: data = future.result(timeout=5) if data: results.append(data) except TimeoutError: print(f"Timeout for URL: {base_url}, retrying...") driver.refresh() except Exception as e: print(f"Unexpected error: {e}")
# Write results in batches of 10 if len(results) >= 10: append_row_to_csv(output_file, results) results.clear()
if results: append_row_to_csv(output_file, results) print("Final batch written to CSV.")
finally: for driver in drivers: driver.quit()
output_file = "products.csv" main(unique_urls, output_file) [/code] Я потратил на это несколько часов, любая помощь будет полезна. Для краткости исключены ненужные функции.
Я пытался нажать на URL -адрес HTTPS для Google API.
Использование кода ниже, но он дал некоторые ошибки.
Но я могу нажать один URL Google API HTTP, и он очень хорошо работает без какой -либо ошибки
Я увидел, что мне нужно добавить размер окна, однако это не решило мою проблему
Вот работающий без головы код
# _-_-_- Non Headless -_-_-_
from selenium import webdriver
from selenium.webdriver.common.by import By
from...