Следует отметить, что findAll
возвращает список (в данном случае список объектов BeautifulSoup), и вам просто нужны заголовки. Возможно, вы захотите использовать find
вместо этого. И вместо того, чтобы распечатывать список объектов BeautifulSoup, вы говорите, что вам нужны заголовки. Следующее работает отлично, например:
import urllib2
from BeautifulSoup import BeautifulSoup
HN_url = "http://news.ycombinator.com"
def get_page():
page_html = urllib2.urlopen(HN_url)
return page_html
def get_stories(content):
soup = BeautifulSoup(content)
titles = []
for td in soup.findAll("td", { "class":"title" }):
a_element = td.find("a")
if a_element:
titles.append(a_element.string)
return titles
print get_stories(get_page())
Так что теперь get_stories()
возвращает список unicode
объектов, который распечатывается так, как вы ожидаете.