ConnectionError(err, request=request) Requests.Exceptions.ConnectionError: ('Соединение прервано.', RemoteDisconnected('Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ConnectionError(err, request=request) Requests.Exceptions.ConnectionError: ('Соединение прервано.', RemoteDisconnected('

Сообщение Anonymous »


ConnectionError(err, request=request) Requests.Exceptions.ConnectionError: («Соединение прервано.», RemoteDisconnected («Удаленное завершение закрытого соединения без ответа»))

Мой код выдает эту ошибку после длительного удаления (cloudscraper в моем коде очень медленный). На сайте можно разобрать 5000 автомобилей, а максимальный охват — 1000 данных.
Я новичок в парсере.
Код:

Код: Выделить всё

import scrapy
import re
import cloudscraper
import pandas as pd

class CarsSpider(scrapy.Spider):
name = "cars"
start_urls = ["https://www.olx.com.br/autos-e-pecas/carros-vans-e-utilitarios"]
custom_settings = {
'DOWNLOAD_DELAY': 0,
'RANDOMIZE_DOWNLOAD_DELAY': False,
'CONCURRENT_REQUESTS': 256,
'CONCURRENT_REQUESTS_PER_DOMAIN': 32,
'AUTOTHROTTLE_ENABLED': True,
'AUTOTHROTTLE_START_DELAY': 1,
'AUTOTHROTTLE_MAX_DELAY': 10,
'AUTOTHROTTLE_TARGET_CONCURRENCY': 2.0,
'AUTOTHROTTLE_DEBUG': True,
}

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.scraper = cloudscraper.create_scraper(browser={'browser': 'firefox', 'platform': 'windows', 'desktop': True})
self.carros_data = []

def start_requests(self):
for url in self.start_urls:
self.logger.info(f"Usando cloudscraper para acessar: {url}")
response = self.scraper.get(url)
if response.status_code == 200:
scrapy_response = scrapy.http.TextResponse(
url=response.url,
body=response.text,
encoding="utf-8"
)
yield from self.parse(scrapy_response, 1)  # Começa na página 1
else:
self.logger.error(f"Erro ao acessar {url}: {response.status_code}")

def parse(self, response, current_page):
link_carros = response.xpath('/html/body/div[1]/div/main/div[2]/div/main/div[7]/section/div/div/div/a/@href').extract()
preco_carros = response.xpath('/html/body/div[1]/div/main/div[2]/div/main/div[7]/section/div[2]/div[1]/div[2]/h3/text()').extract()

for link, preco in zip(link_carros, preco_carros):
self.logger.info(f"Usando cloudscraper para acessar detalhes: {link}")
response = self.scraper.get(link)
if response.status_code == 200:
scrapy_response = scrapy.http.TextResponse(
url=response.url,
body=response.text,
encoding="utf-8"
)
yield from self.parse_detail(scrapy_response, response.url)
else:
self.logger.error(f"Erro ao acessar {link}: {response.status_code}")

# Navega para a próxima página até o limite de 100
next_page = current_page + 1
if next_page 

Подробнее здесь: [url]https://stackoverflow.com/questions/79329881/connectionerrorerr-request-request-requests-exceptions-connectionerror-con[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»