Python Web抓取和数据挖掘

时间:2018-08-27 12:42:56

标签: python web-scraping text-mining data-extraction

我正在Wikipedia页面上进行网页抓取。该代码似乎是正确的,但是我在代码的第11行遇到了问题。

代码:

A=[]
B=[]
C=[]
D=[]
E=[]
F=[]
for row in film.findAll('tr'):
    states=row.findAll('th')
    cells=row.findAll('td')
    if len(cells==9):
        A.append(states[0].find(text=True))
        B.append(cells[0].find(text=True))
        C.append(cells[1].find(text=True))
        D.append(cells[2].find(text=True))
        E.append(cells[3].find(text=True))
        F.append(cells[4].find(text=True))

错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-38-bc871627aa75> in <module>()
      8     states=row.findAll('th')
      9     cells=row.findAll('td')
---> 10     if len(cells==9):
     11         A.append(states[0].find(text=True))
     12         B.append(cells[0].find(text=True))

TypeError: object of type 'bool' has no len()

2 个答案:

答案 0 :(得分:1)

也许吗?

if(len(cells) == 9):
    whatever_code

答案 1 :(得分:0)

您需要将变量单元格放在len()方法的括号内。由于方括号内有cell == 9,因此if语句试图查找不带参数的名为“ cells == 9”的变量的长度。

应该看起来像这样

if len(cells) == 9: