Как сопоставить URL с регулярным выражением Python? - PullRequest
0 голосов
/ 02 октября 2018

Моя проблема в том, что я хочу сопоставить URL-адреса в HTML-коде, который выглядит следующим образом: href='example.com' или с использованием ", но я хочу только извлечь фактический URL-адрес.Я попытался сопоставить его, а затем использовал магию массива, чтобы получить только массив, но так как совпадение с регулярным выражением жадное , если существует более 1 рационального совпадения, будет гораздо больше, которые начинаются с одного ' и заканчивается на другом URL '.Какое регулярное выражение удовлетворит мои потребности?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

В случае, если вы хотите решить это, используя регулярные выражения вместо использования других библиотек python.Вот решение.

import re
html = '<a href="https://www.abcde.com"></a>'
pattern = r'href=\"(.*)\"|href=\'(.*)\''
multiple_match_links = re.findall(pattern,html)
if(len(multiple_match_links) == 0):
     print("No Link Found")
else:
     print([x for x in list(multiple_match_links[0]) if len(x) > 0][0])
0 голосов
/ 02 октября 2018

Я бы порекомендовал НЕ с использованием регулярных выражений для анализа HTML.Ваша жизнь станет намного проще, если вы воспользуетесь чем-то вроде beautifulsoup!

Это так просто:

from BeautifulSoup import BeautifulSoup

HTML = """<a href="https://firstwebsite.com">firstone</a><a href="https://secondwebsite.com">Ihaveurls</a>"""

s = BeautifulSoup(HTML)

for href in s.find_all('a', href=True): print("My URL: ", href['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...