re.findall фильтр для HTML

#python #web-crawler #urllib #re

#python #веб-сканер #urllib #python- re

Вопрос:

Я пытаюсь научить себя Python, начиная с простого веб-сканера. Основная цель — получить URL-адреса, начинающиеся с «Https: //» и заканчивающиеся «.html», первая часть проста, но я не могу «фильтровать» для части .html без проблем. Я либо получаю ошибку, либо результатов нет:

 import urllib, urllib.request, re

   with urllib.request.urlopen("https://www.TEST") as website:
       html = website.read().decode("utf-8")

   links = re.findall('"((https://).*?)"', html)

   print(links)
 

Комментарии:

1. Я настоятельно рекомендовал BeautifulSoup для этого вместо необработанного регулярного выражения

2. Помните, что регулярные выражения являются «жадными» и будут соответствовать столько, сколько смогут. Таким образом, ваш .* будет соответствовать всему, вплоть до ПОСЛЕДНЕЙ двойной кавычки в файле, а не СЛЕДУЮЩЕЙ. Рассмотрим [^»]* — «все, что не является двойной кавычкой».

3. @ Тим Робертс Большое спасибо