什么是Beautiful Soup绑定方法?

1 投票
2 回答
2161 浏览
提问于 2025-04-18 05:02

我正在尝试使用这个链接里的一个新Python库,这个库是基于“美丽汤”库的。我想在一个Django应用中打开一个HTML页面并返回它,但我不知道怎么做这个最简单的任务。我的Django应用包含:

def index(request):    

    p=str(request.POST.get('p', False)) # p='https://www.yahoo.com/'
    browser = RoboBrowser(history=True)
    browser.open(p)
    html = browser.find_all
    return HttpResponse(html)

当我查看输出的HTML时,我看到:

<bound method BeautifulSoup.find_all of 
    <!DOCTYPE html>
    <html>
    ......................
        <head>
    ...............
        </body>
    </html>
>

什么是“美丽汤”的绑定方法?我怎么才能得到直接的HTML呢?

2 个回答

0

BeautifulSoup是一个Python的工具,用来解析HTML和XML文件。它会为解析的网页创建一个树状结构,这个结构可以用来抓取网页上的数据。

BeautifulSoup有很多方法,可以帮助我们在这个树状结构中查找内容。如果我们在树外搜索,就会出现越界的情况。

.next_sibling和.previous_sibling是用来在树的同一层级中,方便地在网页元素之间移动的标签。

参考链接

3

这是一个方法对象,和BeautifulSoup对象绑定在一起。你并没有调用它。

它的表现有点让人困惑,因为BeautifulSoup解析树的repr()包含在内,这实际上就是把树呈现成一个HTML源字符串。

要获取底层的BeautifulSoup解析树,你可以使用;用str()把它转换回源字符串:

html = str(browser.state.parsed)

另外,你也可以通过以下方式访问原始的requests响应对象:

browser.state.response

这意味着原始下载的HTML可以找到:

html = browser.state.response.content

撰写回答