2016-03-07 208 views
0

我試圖刮this pageBeautifulSoup類型返回空列表。 Soup.select()[n-1]返回元素。爲什麼?

我的湯選擇是:

test = soup.select('#bodyContent > #mw-content-text > table.wikitable:nth-of-type(4)') 

這應返回#CMW-內容文本的第4子表。

但它返回一個空的列表。

但是,如果我查詢:

test = soup.select('#bodyContent > #mw-content-text > table.wikitable')[3] 

我得到了相同的選擇。

我在執行中丟失了什麼?

+0

也許第四個'#mw-content-text>表格不是'.wikitable'。 :nth-​​of-type()不等於一個索引器。 – BoltClock

+0

它是。否則它將不在列表中。 –

回答

1

發生這種情況是因爲您不能將nth-of-type()與分類標籤一起使用,因此只能在標籤上使用,如下所示:table:nth-of-type(4)。對於這種特殊的情況下

test = soup.select('#bodyContent > #mw-content-text > table.wikitable:nth-of-type(4)') 

是不可能的,所以你應該用你建議的解決辦法在你的答案

test = soup.select('#bodyContent > #mw-content-text > table.wikitable')[3] 

還檢查了this great question and subsequent answer關於CSS3使用:nth-of-type()