5

我正在尝试使用来自网站的一些 html 使用 Beautiful Soup 解析几个 div 块。但是,我无法确定应该使用哪个函数来选择这些 div 块。我尝试了以下方法:

import urllib2
from bs4 import BeautifulSoup

def getData():

    html = urllib2.urlopen("http://www.racingpost.com/horses2/results/home.sd?r_date=2013-09-22", timeout=10).read().decode('UTF-8')

    soup = BeautifulSoup(html)

    print(soup.title)
    print(soup.find_all('<div class="crBlock ">'))

getData()

我希望能够选择<div class="crBlock ">其正确 end之间的所有内容</div>。(显然还有其他 div 标签,但我想一直选择块,直到代表 html 的这一部分结束的那个块。)

4

1 回答 1

9

正确的用法是:

soup.find_all('div', class_="crBlock ")

默认情况下,beautiful soup 会返回整个标签,包括内容。如果你将它存储在一个变量中,你可以做任何你想做的事情。如果你只寻找一个 div,你也可以使用它find()来代替。例如:

div = soup.find('div', class_="crBlock ")
print(div.find_all(text='foobar'))

查看文档页面以获取有关您可以使用的所有过滤器的更多信息。

于 2013-09-25T18:00:56.087 回答