хочу написать телеграм бот, который будет показывать данные с одного тематического сайта.
то есть основная задача - парсить этот сайт, чтобы получить нужные данные.
на сайте есть форма входа, то есть надо зарегистрироваться.
нашел статейку на хабре по парсингу - https://habrahabr.ru/post/280238/#comment_8824194
с ее помощью я уже научился на python3 + либа requests, передавать auth данные и скачивать страницу по нужному URL.
НО, похоже из-за того, что на сайте используется JS, та часть страницы, которая содержит нужные мне данные, судя по всему просто не скачивается в файл в виде html с помощью такого кода:
def load_user_data(): ........ r2 = session.get(DATAURL) return r2.text data = load_user_data() with open('data.html', 'w', encoding='UTF-8') as output_file: output_file.write(data)
но если логиниться в браузере и открывать эту же страницу - то на этом месте есть нужные мне данные - это набор картинок и графиков отображающих текущие метеоусловия в выбранном месте.
например скорость ветра и направление его - отображаются в виде GIF файлов с определенными именами.
вот, думаю, “считывание” имен этих файлов и будет парсингом в моем понимании.
но на выкачанной странице эти данные в Chrome Inspect выглядят как ПУСТЫЕ отдельные DIV блоки с другими блоками LI внутри:
<ul id="meteo" class="ui-sortable"> <li id="record_1" class="li "></li> ----------- место1 <li id="record_2" class="li "></li> ------------ место2 </ul>
а на online сайте внутри каждого LI блока еще есть один DIV блок и внутри него и находятся нужные мне данные, которые почему-то не выкачиваются:
<li id="record_1" class="li "> <li> <div class="station" style="display:block"> <div class="float_left"> <div class="gadget_text"> <img src="http://site.com/images/gadget/digits/4.gif" align="2"> </div> </div> </li> </li>
вот например - “images/gadget/digits/4.gif” значит что скорость ветра в этом месте == 4м/c
мои вопросы такие:
- почему эти данные не выгружаются в html файл с помощью модуля request - метод get() ?
- каким образом можно все таки получить эти данные (те URL картинок, что находятся в блоках DIV среди нужных мне данных) в код python чтобы потом обработать нужным мне образом?
спасибо всем, кто хотябы дочитал этот лонгрид)