0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 98
|
|
1 | |
Странное поведение библиотеки requests02.12.2019, 11:24. Показов 1163. Ответов 6
Доброго времени суток! Обнаружил странную особенность библиотеки requests. Заметил это случайно, когда делал для собственного образования парсер сайта avito с помощью библиотеки bs4. Ниже приведу скриншот. На первом скрине (белый фон) часть странички avito, где выделено два тега <p></p>. Библиотека requests читает эти теги странным образом, выкидывая первый открывающий тэг. Это есть на фтором скриншоте. А далее ошибка тянется в bs4 с соответствующими последствиями.
0
|
02.12.2019, 11:24 | |
Ответы с готовыми решениями:
6
Авторизация на сайте посредством библиотеки requests Проблема при использовании библиотеки requests странное поведение интерпретатора Парсинг web страничек. библиотеки import requests |
Просто Лис
|
|
02.12.2019, 13:17 | 2 |
Какой html сервер отдал - такой библиотека и приняла. Возможно, браузер пофиксил неоткрытый тег.
Добавлено через 57 секунд Попробуйте открыть страницу в браузере через "Исходный код страницы" - там открывающий тег скорей всего тоже будет отсутствовать.
0
|
02.12.2019, 13:24 | 3 |
Браузеры всегда показывают исключительно исправленный идеальный HTML.
Почему-то пользователи об этом даже не задумываются... Пустой тег параграфа может быть записан как <p/> Возможно, что даже одиночный закрывающий </p> не считается грубой ошибкой верстки. В HTML (в отличие от XHTML) вообще слишком много всего допускается.
0
|
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 98
|
|
02.12.2019, 14:26 [ТС] | 4 |
Последовал вашему совету и просмотрел исходный код. На удивление там ситуация совсем иная...
0
|
02.12.2019, 15:13 | 5 |
То есть вы еще не осознали, что код показанный пользователю (полностью отрендеренный - динамика!) и код который присылает сервер (статика!) - это две большие разницы?
Времена, когда эти два кода полностью совпадали, закончились в начале 2000-x.
0
|
0 / 0 / 0
Регистрация: 20.07.2016
Сообщений: 98
|
|
02.12.2019, 15:54 [ТС] | 6 |
Так как я слабо связан с версткой и фронтом в целом, думал что динамика только там, где есть .js вставки.
Но все же, на последнем скрине как оказалось тег <p></p> вовсе не пустой. Куда же исчезает его содержимое, после считывания библиотекой requests? requests считывает исходный код, я правильно понимаю?
0
|
02.12.2019, 18:18 | 7 |
requests считывает поток байт, который прислал сервер. Что находится в этом потоке зависит только от сервера.
Скрипты могут вообще не присутствовать в явном виде на странице. Обычно в начало html помещаются ссылки на них, по которым браузер их скачивает. js. код есть практически везде. Ну не делают сайтов без js. Только если это не статичная страничка, содержимое которой никогда не меняется. А кроме js сейчас и CSS умеет выполнять код, например, делать всякого рода динамические счетчики. Это потому что браузер выполнил все содержащиеся в коде скрипты и отрендерил полный код страницы.
0
|
02.12.2019, 18:18 | |
02.12.2019, 18:18 | |
Помогаю со студенческими работами здесь
7
Странное поведение Странное поведение IDE Странное поведение getcwd() Странное поведение класса Странное поведение инкремента Странное поведение list.insert() Странное поведение при работе с массивами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |