把URL变成HTMLlink

Turn URL into HTML link

在Python中,如果我有一个URL,最简单的方法是什么,比如:

http://whosebug.com

进入:

<a href="http://whosebug.com">http://whosebug.com</a>

到目前为止,我已经与正则表达式联系了很多,但一点用都没有。

您可以使用 str.format:

>>> link = 'http://whosebug.com'
>>> print('<a href="{0}">{0}</a>'.format(link))
<a href="http://whosebug.com">http://whosebug.com</a>
>>>

但是请注意,您需要为格式字段编号,因为您在重复一个参数。

url = 'http://whosebug.com'
reference = '<a href=\"'+ url + '\">' + url + '</a>'

假设你已经在一个变量中有那个字符串,或者可以得到它,我建议你使用 string.format.

link = '<a href="{0}">{0}</a>'
WhosebugLink = link.format("http://whosebug.com")

WhosebugLink 将包含
<a href="http://whosebug.com">http://whosebug.com</a>

你可以使用正则表达式。

>>> import re
>>> s = "http://whosebug.com www.foo.com"
>>> re.sub(r'\b((?:https?:\/\/)?(?:www\.)?(?:[^\s.]+\.)+\w{2,4})\b', r'<a href=""></a>', s)
'<a href="http://whosebug.com">http://whosebug.com</a> <a href="www.foo.com">www.foo.com</a>'

您可以使用库将 URL 转换为 HTML 标签,例如bleach:

from bleach import linkify
url = 'https://whosebug.com?with=param1&other=param2'
atag = linkify(url)
print(atag)

会输出

<a href="https://whosebug.com?with=param1&amp;other=param2" rel="nofollow">https://whosebug.com?with=param1&amp;other=param2</a>