美丽的汤不能获得新闻标题

时间:2014-05-04 14:55:47

标签: python beautifulsoup

from bs4 import BeautifulSoup
import requests
url ="http://www.basketnews.lt/lygos/59-nacionaline-krepsinio-asociacija/2013/naujienos.html"
r = requests.get(url)
soup = BeautifulSoup(r.text)

naujienos = soup.findAll('a', {'class':'title'})

print naujienos

这是HTML的重要部分:

<div class="title">

    <a href="/news-73147-rockets-veikiausiai-pasiliks-mchalea.html"></a>
    <span class="feedbacks"></span>

</div>

我得到空列表。我的错误在哪里?

编辑:

谢谢你的工作。现在我要打印新闻标题。这就是我尝试这样做的方式:

nba = soup.select('div.title > a')

for i in nba:
   print ""+i.string+"\n"

我得到最多5个标题并且发生错误:无法连接&#39; str&#39;和&#39; NoneType&#39;对象

1 个答案:

答案 0 :(得分:2)

soup.findAll('a', {'class':'title'})

这就是说,给我所有a标签也有class="title"。这显然不是你想要做的事情。

我认为您希望a标记是class="title"标记的直接后代。您可以尝试使用css选择器:

soup.select('div.title > a')
Out[58]: 
[<a href="/news-73150-blatcheas-garantuoju-kad-laimesime.html">Blatche'as: âGarantuoju, kad laimÄsimeâ</a>,
 <a href="/news-73147-rockets-veikiausiai-pasiliks-mchalea.html">âRocketsâ veikiausiai pasiliks McHaleâÄ
</a>,
# snip lots of other links
]