如何使用BeautifulSoup查找指向特定域的页面中的所有链接?

5
我该如何使用BeautifulSoup查找页面中指向特定域的所有链接?
1个回答

8
使用SoupStrainer:
from BeautifulSoup import BeautifulSoup, SoupStrainer
import re

# Find all links
links = SoupStrainer('a')
[tag for tag in BeautifulSoup(doc, parseOnlyThese=links)]

linkstodomain = SoupStrainer('a', href=re.compile('example.com/'))

编辑:修改了官方文档中的示例。


1
我会更加谨慎地选择正则表达式;那个可能会导致误报。 - Ignacio Vazquez-Abrams
@Ignacio - 没错,这个例子有一个警告 - 正则表达式显然应该尽可能详细,以避免那些误报。 - viksit
不,通常不应该尝试使用正则表达式解析HTML,这里有一个详细的解释:https://dev59.com/X3I-5IYBdhLWcg3wq6do。 - subiet
@subiet,这个例子没有使用正则表达式来解析HTML。它是通过匹配href属性来限制结果到已知的子集。 - Scone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接