1

我正在尝试http://robobrowser.readthedocs.org/en/latest/readme.html,这是一个基于美丽汤库的新 python 库。我试图通过打开一个 html 页面并在 django 应用程序中返回它来测试它,但我无法弄清楚这个最简单的任务。我的 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?

4

1 回答 1

3

它是一个绑定到对象的方法BeautifulSoup对象。你没有叫它

它的表示有点令人困惑,因为repr()包含 BeautifulSoup 解析树,它只是呈现为 HTML 源字符串的树。

要获取底层的 BeautifulSoup 解析树,您可以使用;用于str()将其转回源字符串:

html = str(browser.state.parsed)

或者,您仍然可以通过以下方式访问原始requests响应对象:

browser.state.response

这意味着原始下载的 HTML 被发现为:

html = browser.state.response.content
于 2014-05-01T18:49:01.440 回答