Почему response.urljoin () не получает все URL в Scrapy? - PullRequest
0 голосов
/ 06 января 2020

Когда я очищаю URL или заменяю в URL на %20 для обработки пробелов, scrapy не получает весь URL. Он показывает только половину, как на связанном изображении.

Может кто-нибудь сказать мне, почему Scrapy не получает полный URL с response.urljoin()?.

Сообщение об ошибке:

2020-01-07 23:09:19 [scrapy.pipelines.files] ВНИМАНИЕ: Файл (код: 302): Ошибка при загрузке файла из http://www.oriental-patron.com.hk/opsl/dl_count.php?id=1986&type=company&pdf_path= / u pload / File / Q% 20Tech% 20 (1478 % 20HK)% 20-% 20Наполнение% 20 размещение% 20 для% 20CCM% 20capacity% 20 расширение% 20-% 20BUY.pdf> упомянуто в 2020-01-07 23:09:19 [scrapy.core.scraper] ОТЛАДКА: Scraped из <200 <a href="http://www.oriental-patron.com.hk/opsl/eng/company.php?display=all" rel="nofollow noreferrer">http://www.oriental-patron.com.hk/opsl/eng/company.php?display=all> {'file_urls': ['http://www.oriental-patron.com.hk/opsl/dl_count.php?id=1977&type=company&pdf_path= / upload / File / Sunny% 20Optical% 20 (2382% 20HK) % 20-% 20Oктябрь% 20shipments% 20in% 20line% 20 с% 20e ожиданий% 20-% 20BUY.pdf '],' files ': []}

[Ссылка на картинку]

1 Ответ

0 голосов
/ 06 января 2020

У вас есть круглые скобки в URL. Похоже, Scrapy задыхается от них. Они «зарезервированы» в URL-адресах, но должны быть в порядке там, где они есть. Чтобы быть в безопасности, вы должны закодировать их. В общем, вы не должны делать url-кодирование вручную, а полагаться на встроенные меры. Насколько я понимаю, вы должны сделать это в Python:

import urllib.parse
urllib.parse.quote(url)

, но я не знаю Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...