10

これは完全に明白かもしれませんが、私は困惑しています(Pythonは初めてです、申し訳ありません):

page = urllib2.urlopen("http://www.somerandompage.com")
soup = BeautifulSoup(page)
currentDate = soup.find("span", class="posted-on")

ページで次の要素を探しています。

<span class="posted-on">Posted on Friday, <br/>August 12th, 2011</span>

代わりに、次の構文エラーが発生します。

"test.py", line 22
currentDate = soup.find("span", class="posted-on")
                                    ^
SyntaxError: invalid syntax

オンラインの基本的なドキュメントは私と同じように見えます(明らかにfind_parents()とfind()がほとんど同じように機能すると仮定しています):

a_string.find_parent("p")
# <p class="story">Once upon a time there were three little sisters; and their names were
#  <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a> and
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>;
#  and they lived at the bottom of a well.</p>

a_string.find_parents("p", class="title")
# []

だから私は何が間違っているのですか?クラスは予約されたPythonキーワードであることを私は知っています。それはどういうわけかこれを台無しにしているのですか?

4

1 に答える 1

8

classキーワード引数として使用することはできません。{'class': 'posted-on'}代わりに使用してください:

currentDate = soup.find('span', {'class': 'posted-on'})

または、bs4はclass_スペルもサポートしています。

currentDate = soup.find('span', class_='posted-on')
于 2012-12-31T20:51:21.740 に答える