#python #parsing #selenium-webdriver #web-scraping #scrapy
#python #синтаксический анализ #selenium-webdriver #веб-очистка #scrapy
Вопрос:
У меня есть 2 функциональных блока в моем scraper 1.Parse 2.Parse_info
В 1-м блоке я получил список URL-адресов. Некоторые из URL-адресов работают (у них уже есть ‘https://www.example.com /’ часть) Остальные URL-адреса не работают (у них нет ‘https://www.example.com /’ часть)
Итак, перед передачей URL-адреса во 2-й блок, т.е. parse_info; Я хочу проверить URL-адрес, и если он не работает, я хочу отредактировать его и добавить требуемую часть (‘https://www.example.com /’часть).
Ответ №1:
Вы можете использовать модуль запросов и получить код состояния веб-сайта — руководство по выполнению этого здесь .
Аналогично, если вы просто пытаетесь проверить, содержит ли URL-адрес определенную часть, т.е. ‘https://www.example.com /’, вы можете выполнить запрос регулярного выражения и сделать это.
Комментарии:
1. «Запрос регулярных выражений» сработал для меня. Спасибо за предложение.
Ответ №2:
Моя интерпретация вашего вопроса заключается в том, что у вас есть список URL-адресов, некоторые из которых имеют абсолютный адрес, например ‘https://www.example.com/xyz ‘ а у некоторых есть только относительная ссылка, например ‘/xyz’, которая принадлежит ‘https://www.example.com — сайт.
Если это так, вы можете использовать ‘urljoin’ для рационализации каждого из URL-адресов, например:
>>> from urllib.parse import urljoin
>>> url = 'https://www.example.com/xyz'
>>> print(urljoin('https://www.example.com', url))
https://www.example.com/xyz
>>> url = '/xyz'
>>> print(urljoin('https://www.example.com', url))
https://www.example.com/xyz
Комментарии:
1. Да, я использую urljoin(), но перед этим я хотел проверить URL-адрес; что, если ‘ example.com — часть уже присутствует.