Почему BeautifulSoup теряет так много контента с этой веб-страницы? - PullRequest
0 голосов
/ 14 мая 2019

У меня есть веб-браузер, который я построил год назад.Мне нужно использовать это снова, но bs4, кажется, действует по-другому.Раньше он возвращал объект-суппорт, содержащий всю веб-страницу, но теперь он останавливается в середине списка.Мне нужно получить все элементы списка, так что это сломало мой старый код.

Я искал похожие проблемы с красивым супом, и у одного человека здесь была похожая проблема, но решение (выберите определенный элемент div) не будет работать для меня, потому что мне нужно, чтобы содержимое всей веб-страницы очищало все URL.

Вот код, который я использую:

import requests
from bs4 import BeautifulSoup


def siteopen(url):
    web_source = url
    source_code = requests.get(web_source)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, "lxml")
    return soup


print(siteopen('http://celt.ucc.ie/irlpage.html'))

plain_text содержит все html, которые я хочу очистить, однако элемент soup не содержит всего этого.Он останавливается вскоре после элемента списка, по-видимому, случайно.

Я запускаю этот код в PyCharm Community Edition.Может быть, там будет какое-то ограничение по размеру?Иначе, как я могу решить эту проблему и получить доступ к полному объекту супа?

Редактировать:

Поскольку другие пользователи успешно запустили это в Linux и PyCharm Pro, я попытался запустить его в Mac OS.терминал, и проблема воссоздана там.В тот же момент, когда у меня возникла проблема с PyCharm, вывод делает это:

enter image description here

1 Ответ

1 голос
/ 14 мая 2019

У меня нет проблем с просмотром всех данных для этого запроса.Возможно, PyCharm ограничивает объем текста, который разрешается отображать на одном отпечатке.

Вы можете проверить это, запустив

import requests
from bs4 import BeautifulSoup


def siteopen(url):
    web_source = url
    source_code = requests.get(web_source, verify=False)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text, "lxml")
    return soup


print("</html>" in str(siteopen('http://celt.ucc.ie/irlpage.html')))

Если вы вернете True, вы знаете, что он вытащилвся страница.

Установите этот флажок, чтобы увидеть, можно ли увеличить предел выходного буфера:

Превышен предел вывода Pycharm

...