Ошибка при парсинге

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Сайт https://pixabay.com/ru/
Нажав "Просмотреть код элемента" я получаю код в котором одной из фотографий соответствует код
Код:
<a class="link--3pfoX" href="https://pixabay.com/ru/photos/%d0%bc%d0%be%d1%80%d0%b5-%d0%b2%d0%be%d1%81%d1%85%d0%be%d0%b4-%d1%81%d0%be%d0%bb%d0%bd%d1%86%d0%b0-%d0%be%d0%ba%d0%b5%d0%b0%d0%bd-5382487/" data-id="5382487"><img src="https://cdn.pixabay.com/photo/2020/07/08/04/07/sea-5382487__480.jpg" alt="Море, Восход Солнца, Океан, Заход Солнца" style="max-width: 5571px; max-height: 3682px;"></a>
При выполнении программы
Код:
# загрузка фотографий с сайта
import datetime
import time, sys, os
import json
from bs4 import BeautifulSoup
import requests


dd = os.makedirs('1//photos', exist_ok = True)#в катологе со скриптом создается  папка/photos в которой сохраняем фото

url = 'https://pixabay.com/ru/' # url адрес сайта
res = requests.get(url) #на сайт отправляется запрос о состоянии и ответ привязывается к переменной 
res1 = BeautifulSoup(res.content, "html.parser")#из ответа выделяется html код страницы (content)
print("res1=", res1)

Я должен получить аналогичный код в котором есть код фотографии. Но эти коды совершенно не соответствуют друг другу . И кода фотографии там нет и применив
Код:
browser = res1.findAll(class_ = "link--3pfoX")
Получаю пустой текст.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 583
457
83
ну сайт не доступен на территории России
а так должно работать, вот пример, работает
Python:
import bs4

res = '<a class="link--3pfoX" href="https://pixabay.com/ru/photos/%d0%bc%d0%be%d1%80%d0%b5-%d0%b2%d0%be%d1%81%d1%85' \
       '%d0%be%d0%b4-%d1%81%d0%be%d0%bb%d0%bd%d1%86%d0%b0-%d0%be%d0%ba%d0%b5%d0%b0%d0%bd-5382487/" ' \
       'data-id="5382487"><img src="https://cdn.pixabay.com/photo/2020/07/08/04/07/sea-5382487__480.jpg" alt="Море, ' \
       'Восход Солнца, Океан, Заход Солнца" style="max-width: 5571px; max-height: 3682px;"></a> '

res1 = bs4.BeautifulSoup(res, "html.parser")
browser = res1.findAll(class_="link--3pfoX")
print(browser)
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
ну сайт не доступен на территории России
а так должно работать, вот пример, работает
Python:
import bs4

res = '<a class="link--3pfoX" href="https://pixabay.com/ru/photos/%d0%bc%d0%be%d1%80%d0%b5-%d0%b2%d0%be%d1%81%d1%85' \
       '%d0%be%d0%b4-%d1%81%d0%be%d0%bb%d0%bd%d1%86%d0%b0-%d0%be%d0%ba%d0%b5%d0%b0%d0%bd-5382487/" ' \
       'data-id="5382487"><img src="https://cdn.pixabay.com/photo/2020/07/08/04/07/sea-5382487__480.jpg" alt="Море, ' \
       'Восход Солнца, Океан, Заход Солнца" style="max-width: 5571px; max-height: 3682px;"></a> '

res1 = bs4.BeautifulSoup(res, "html.parser")
browser = res1.findAll(class_="link--3pfoX")
print(browser)
Вопрос за малым, получить это res
 

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
ну сайт не доступен на территории России
а так должно работать, вот пример, работает
Python:
import bs4

res = '<a class="link--3pfoX" href="https://pixabay.com/ru/photos/%d0%bc%d0%be%d1%80%d0%b5-%d0%b2%d0%be%d1%81%d1%85' \
       '%d0%be%d0%b4-%d1%81%d0%be%d0%bb%d0%bd%d1%86%d0%b0-%d0%be%d0%ba%d0%b5%d0%b0%d0%bd-5382487/" ' \
       'data-id="5382487"><img src="https://cdn.pixabay.com/photo/2020/07/08/04/07/sea-5382487__480.jpg" alt="Море, ' \
       'Восход Солнца, Океан, Заход Солнца" style="max-width: 5571px; max-height: 3682px;"></a> '

res1 = bs4.BeautifulSoup(res, "html.parser")
browser = res1.findAll(class_="link--3pfoX")
print(browser)
Еще раз попробовал по другому. Текст который я получаю выполнением скрипта совершенно не похож на то который получаю нажав "Просмотреть код элемента" Проверил что адрес сайта с которого приходит ответ аналогичен адресу сайта. Почему тексты так различаются. В приложении текст который получаю исполнением скрипта.
 

Вложения

  • Документ1.txt
    12,8 КБ · Просмотры: 3

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 583
457
83
значит формируется он динамически, через bs4 вы не сможете спарсить...
гуглите парсинг динамических сайтов
 
  • Мне нравится
Реакции: s591962

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
значит формируется он динамически, через bs4 вы не сможете спарсить...
гуглите парсинг динамических сайтов
спасибо
 

Форум IT Специалистов