使用BeautifulSoup在HTML中选择div块

SMN*_*LLY 5 html python urllib2 beautifulsoup python-2.7

我试图使用来自网站的一些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()
Run Code Online (Sandbox Code Playgroud)

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

Wiw*_*web 9

正确使用将是:

soup.find_all('div', class_="crBlock ")
Run Code Online (Sandbox Code Playgroud)

默认情况下,美丽的汤将返回整个标签,包括内容.如果将它存储在变量中,则可以随意执行任何操作.如果您只是寻找一个div,您也可以使用find().例如:

div = soup.find('div', class_="crBlock ")
print(div.find_all(text='foobar'))
Run Code Online (Sandbox Code Playgroud)

有关可以使用的所有过滤器的详细信息,请查看文档页面.