使用Python 3从源代码中提取URL

时间:2015-02-06 07:03:47

标签: python html python-3.x html-parsing

我的问题是参考以下内容: How to extract URL from HTML anchor element using Python3?

如果我不知道确切的网址并且只有一个关键字应该出现在网址中,该怎么办?那么如何从页面源中提取网址?

2 个答案:

答案 0 :(得分:2)

使用 HTML解析器

如果是BeautifulSoup,您可以传递function作为关键字参数值:

from bs4 import BeautifulSoup

word = "test"
data = "your HTML here"
soup = BeautifulSoup(data)

for a in soup.find_all('a', href=lambda x: x and word in x):
    print(a['href'])

或者,regular expression

import re

for a in soup.find_all('a', href=re.compile(word)):
    print(a['href'])

或者,使用CSS selector

for a in soup.select('a[href^="{word}"]'.format(word=word)):
    print(a['href'])

答案 1 :(得分:1)

尝试使用正则表达式

import re
re.findall(r'(?i)href=["\']([^\s"\'<>]+)', content)