Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2015 22:04:17

WalinoR
От: Бердянск, Украина
Зарегистрирован: 2015-09-08
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

парсинг сайта https

Хочу вытянуть с сайта банка курсы валют.
Использую urllib.request. Интересующий меня фрагмент находится в теге <div class=“container”>, но его содержимое не выводится с помощью urllib.request:

<div class="content">
<div class="container"></div>
</div>

код python:
#!/usr/bin/env python3
import urllib.request
from bs4 import BeautifulSoup
BASE_URL = 'https://www.privat24.ua/#login'
def get_html(url):
    """Creates html file from url."""
    response = urllib.request.urlopen(url)
    return response.read()
def get_rate(html):
    soup = BeautifulSoup(html)
    print('soup = ', soup)
    content = soup.find('div', class_='exchange-rates')
    return content
def main():
    result = get_rate(get_html(BASE_URL))
    print(result)
if __name__ == '__main__':
    main()

Кто может объяснить, почему так происходит?

Офлайн

#2 Окт. 26, 2015 22:39:11

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

парсинг сайта https

WalinoR
Если все остальное вы делаете правильно, то предположу что содержимое подгружается за счет JS. Смотрите в браузере в инструментах разработчика наличие XHR запросов. Если так, то https тут не при чем.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version