Извлечение URL из строки - PullRequest
       4

Извлечение URL из строки

0 голосов
/ 01 апреля 2019

Я только что начал регулярное выражение для python и столкнулся с этой проблемой, где я должен извлечь URL из строки:

str = "<tag>http://example-1.com</tag><tag>http://example-2.com</tag>"

Код, который я имею:

import re

url = re.findall('<tag>(.*)</tag>', str)

print(url)

возвращает:

[http://example-1.com</tag><tag>http://example-2.com]

Если бы кто-нибудь мог указать мне направление, как я мог бы подойти к этой проблеме, было бы очень признательно!

Спасибо всем!

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

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

Вы можете использовать BeautifulSoup для разбора HTML.

Например:

from bs4 import BeautifulSoup

str = "<tag>http://example-1.com</tag><tag>http://example-2.com</tag>"
soup = BeautifulSoup(str, 'html.parser')
tags = soup.find_all('tag')
for tag in tags:
        print tag.text

1 голос
/ 01 апреля 2019

Использование только повторного пакета:

import re
str = "<tag>http://example-1.com</tag><tag>http://example-2.com</tag>"
url = re.findall('<tag>(.*?)</tag>', str)
print(url)

возвращает:

['http://example-1.com', 'http://example-2.com']

Надеюсь, это поможет!

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