@e-14
Android-разработчик

Можно ли на Python написать веб-приложение-парсер?

Нужно на питоне написать сайт, который собирал бы данные с другого сайта (например, историю курса валют) и отображал на их осонове график в браузере.
Это вообще возможно сделать на питоне?
Если да, то какие технологии можно использовать?
  • Вопрос задан
  • 977 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Trahibidadido
Backend/DevOps
Вполне. Берем связку bs4+requests, для быстроты разработки вебморды - Django, делаем нужные модели, пишем сам парсер, оборачиваем как Django команду, вызываем во вьюхе -> done. Но тут возникает множество возможного гемороя + обязательное кеширование.

Так что куда лучше сделать отдельно парсер, который будет писать данные в БД, а отдельно вывод этих данных в принципе на чем угодно.
Ответ написан
Комментировать
Ranc58
@Ranc58
Backend python developer
Bs4/scrapy + sqlite/postgres/другая бд + flask/django.
Не самый лучший пример, но сама логика варианта без БД с кэшированием: https://github.com/Ranc58/25_cinemas_site
Ответ написан
Комментировать
@asd111
Курсы валют не нужно парсить. Для этого есть API центробанка www.cbr.ru/scripts/Root.asp?PrtId=SXML
Ответ написан
Комментировать
delvin-fil
@delvin-fil
Crazy Linux-admin
Как пример. Вывод текущего курса доллара.
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
import requests, re
from xml.dom.minidom import parseString

headers = {
    'User-Agent': ('Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 '
                   'Firefox/14.0.1'),
    'Accept':
    'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language':
    'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
    'Accept-Encoding':
    'gzip, deflate',
    'Connection':
    'keep-alive',
    'DNT':
    '1'
}

page = requests.get(
    'http://www.cbr.ru/scripts/XML_daily.asp', headers=headers).text
xmldoc = parseString(page)
usd = xmldoc.getElementsByTagName('Value')[10]
usd = usd.firstChild.nodeValue
print (usd)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы