2011-03-05 69 views
0
soup = BeautifulSoup(html).findAll('div', 'thread') 
    for i in soup: 
    print i 

,因爲那是我被陷在我來的代碼只有這部分。迭代在Python和BeautifulSoup

湯返回一個列表,我試圖用「」。加入()有一個文字字符串,它不起作用,因爲它是一個字符串,而不是標籤。我想這是一種錯誤。

迭代,它會在屏幕上打印所有沒有逗號的列表。

但我要的是讓格CASS =「線程」

我試着像

soup = BeautifulSoup(html).findAll('div', 'thread') 
    for i in soup: 
    print BeautifulSoup(i)('a')['href'] 

許多事情的最後一個代碼給我「NoneType」對象不callabe內A HREF內容。

我正在嘗試很多組合,但我確實被卡住了,我根本無法工作。我不知道在很多失敗的嘗試之後應該怎麼做。這很令人沮喪。

+1

用方括號替換'a'周圍的括號。它現在工作嗎? – 2011-03-05 18:36:58

回答

1

它應該是這樣的
divs = BeautifulSoup(html).findAll('div','thread')
for div in divs:
print div.find('a').attr['href'] // may it be map(a.attrs)['href'], i dont remember now

0

考慮看看此模塊/類(http://www.crummy.com/software/BeautifulSoup/documentation.html)的文件 - 第二個參數對於findAll是一個json對象,而不是一個字符串。您是否嘗試過這種方式:

BeautifulSoup(html).findAll('div', { 'class': 'thread' })