Я пытаюсь написать скрипт Python для обработки всего joyo kanji. Однако мой скрипт получает только первые 504 элемента таблицы. Полная таблица имеет 2136 элементов. Этот сценарий демонстрирует проблему:BeautifulSoup обрезает таблицу
from bs4 import BeautifulSoup
from urllib2 import urlopen
url = "http://en.wikipedia.org/wiki/List_of_j%C5%8Dy%C5%8D_kanji"
soup = BeautifulSoup(urlopen(url))
print soup.prettify()
Последний элемент это показывает, из таблицы является:
<tr>
<td>
504
</td>
<td style="font-size:2em">
<a href="//">
</a>
</td>
</tr>
</table>
Однако, когда я смотрю на эту таблицу в хроме, я вижу это для элемента 504
<tr>
<td>504</td>
<td style="font-size:2em">
<a href="//en.wiktionary.org/wiki/%E6%BF%80" class="extiw" title="wikt:激">激</a>
</td>
...
Я ожидал, что последним элементом таблицы будет элемент 2 136.
Я не могу воспроизвести это. Какую ОС вы используете, и у вас установлен lxml? Что происходит, когда вы используете 'BeautifulSoup (urlopen (url), 'html.parser')' вместо этого? –
@MartijnPieters Получение того же результата, что и OP, когда не используется 'html.parser'. Я на OSX и имею lxml. – fixxxer
Добавление 'html.parser' решило это! Спасибо Martijn! Если вы напишете это как ответ, я буду отмечать его как правильное. – Ari