Однако всякий раз, когда я запускаю его, я получаю эту ошибку:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-116-a900c2872793> in <module>() 14 postTestScore = [] 15 ---> 16for row in table.find_all('tr'): 17 col = table.find_all('td') 18
AttributeError: 'ResultSet'object has no attribute 'find_all'
Я прочитал около дюжины вопросов StackOverflow об этой ошибке, и я не могу понять, что я делаю не так.
Переведено автоматически
Ответ 1
table Переменная содержит список. Вам нужно будет вызвать find_all для его элементов (даже если вы знаете, что это список только с одним элементом), а не для всего объекта.
Это дает вам результирующий набор, то есть все элементы, соответствующие классу. Вы можете либо перебирать их, либо, если вы знаете, что у вас есть только один dataFrame, вы можете использовать find вместо этого. Из вашего кода кажется, что последнее - это то, что вам нужно, чтобы решить насущную проблему:
table = soup.find(class_='dataframe')
Однако это еще не все:
for row in table.find_all('tr'): col = table.find_all('td')
Вы, вероятно, захотите выполнить итерацию по tds в строке здесь, а не по всей таблице. (В противном случае вы будете просто видеть первую строку снова и снова.)
for row in table.find_all('tr'): for col in row.find_all('td'):