什么是Beautiful Soup绑定方法?
我正在尝试使用这个链接里的一个新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