Веб-очистка Python и интеллектуальный анализ данных - PullRequest
0 голосов
/ 27 августа 2018

Я занимаюсь поиском в интернете на странице википедии. код кажется правильным, но у меня проблема в 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 голосов
/ 27 августа 2018

Вам нужно поместить переменные ячейки в скобки метода len (). Поскольку в скобках есть ячейки == 9, оператор if пытается найти длину переменной с именем «cell == 9» без аргументов.

Это должно выглядеть так

if len(cells) == 9:
0 голосов
/ 27 августа 2018

Возможно

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