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;对象
答案 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
]