У меня есть байт объект, который содержит URL:
> body.decode("utf-8") > 'https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/\r\n\r\nhttps://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/\r\n'
Мне нужно разбить его на список с каждым URL-адресом в качестве отдельного элемента:
import re pattern = '^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$' urls = re.compile(pattern).split(body.decode("utf-8"))
Я получаю список из одного элемента со всеми URL, вставленными вместе:
['https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/\r\n\r\nhttps://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/\r\n']
Как мне разделить каждый URL на отдельный элемент?
Попробуйте разделить его на \s+
\s+
Попробуйте этот пример кода Python,
import re s = 'https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/\r\n\r\nhttps://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/\r\n' urls = re.compile('\s+').split(s) print(urls)
Это выходы,
['https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/', 'https://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/', '']
Этот результат выглядит нормально? Или мы можем работать над этим и делать, как вы пожелаете.
Если вам не нужна пустая строка ('') в вашем списке результатов (из-за \ r \ n в конце), вы можете использовать find all, чтобы найти все URL в вашей строке. Пример кода Python для же следующий:
import re s = 'https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/\r\n\r\nhttps://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/\r\n' urls = re.findall('http.*?(?=\s+)', s) print(urls)
Это дает следующий вывод,
['https://www.wired.com/story/car-news-roundup-tesla-model-3-sales/', 'https://cleantechnica.com/2018/11/11/can-you-still-get-the-7500-tax-credit-on-a-tesla-model-3-maybe-its-complicated/']