如何用Beautiful Soup / Robobrowser选择嵌套链接

0 投票
1 回答
1602 浏览
提问于 2025-04-18 04:54

我正在尝试一个新的Python库,叫做http://robobrowser.readthedocs.org/en/latest/readme.html,这个库是基于另一个叫做Beautiful Soup的库。

我有以下的HTML代码:

我有以下的Django视图函数:

def index(request):    

    p=str(request.POST.get('p', False)) # eg. p='https://www.yahoo.com/'
    browser = RoboBrowser(history=True)
    postedmessage = browser.open(p)
    out = browser.select('span.select')

    return HttpResponse(postedmessage)

输出结果是:

<span class="select"><a href="/selector/1">select</a></span>

但是我该如何使用Beautiful Soup来选择里面的标签呢?

1 个回答

3

只需要在你传给 soup.select() 方法 的 CSS 选择器前面加上 a 就可以了:

out = browser.select('span.select a')

另外,你也可以通过把标签名当作属性来找到第一个匹配的子标签:

out = browser.select('span.select')
links = [span.a for span in out]

撰写回答