Кажется, проблема в том, что сайт имеет некорректный HTML.Если вы посмотрите на источник сайта, который вы разместили, перед столбцом рейтинга частоты есть два закрывающих тега </td>
.Пример:
<tr>
<td><a href="/character/的">的</a></td>
<td>de</td><td><span class="smmr">possessive, adjectival suffix</span></td>
<td><a href="/character/白" title="Kangxi radical 106">白</a> 106.3</td>
<td>8</td><td>1</td>
<td>1155</td></td>
<td>1</td>
</tr>
Я думаю, что это вызывает проблемы с анализатором, который вы используете (html.parser
).Если вы устанавливаете парсер lxml
, он, кажется, работает.
Попробуйте:
Сначала , установите парсер lxml
...
pip install lxml
Затем , измените анализатор в вашем soup_the_page()
методе:
soup = BeautifulSoup(response.content, 'lxml')
Затем запустите ваш скрипт.Вроде работает.print(trow.contents[7].text)
больше не выдает ошибку индекса вне диапазона.