Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2017 04:57:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

 t = t[:-3] +'.'+t[-3:]

мягко говоря, странный способ перевести миллисекунды в секунды

 import requests
import datetime
url = 'http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224'
r = requests.get(url)
data = r.json()
timestamp = data['agency']['publishedGeneralInformation']['realPublishDate']
print datetime.datetime.fromtimestamp(timestamp / 1000.0)



Офлайн

#2 Фев. 27, 2017 06:16:25

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Вариант с json у меня не отработал.

У меня выдает

2017-02-07 10:16:38.538000

а на сайте дата публикации 17.02.2017



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Фев. 27, 2017 16:19:58

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 143
Репутация: +  8  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

ajib6ept
У меня выдает
2017-02-07 10:16:38.538000

а на сайте дата публикации 17.02.2017
И у меня тоже дату не ту выдает, что на сайте. Что-то я не вижу простоты в этом подходе… может не туда смотрю

Офлайн

#4 Фев. 27, 2017 17:11:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Vigi
И у меня тоже дату не ту выдает, что на сайте. Что-то я не вижу простоты в этом подходе… может не туда смотрю

Да блин! Это уже дело принципа




Что я делаю не так?



Офлайн

#5 Фев. 27, 2017 17:14:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url





Офлайн

#6 Фев. 27, 2017 17:35:14

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 143
Репутация: +  8  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

ну все разобрался низкий поклон!
просто выше Ваш пример:

FishHook
 import requests
import datetime
url = 'http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224'
r = requests.get(url)
data = r.json()
timestamp = data['agency']['publishedGeneralInformation']['realPublishDate']
print datetime.datetime.fromtimestamp(timestamp / 1000.0)
немного сбил с толку
так нужно было:
 import requests
import datetime
url = 'http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&d-5460-o=2&d-5460-s=1&task=3573224'
r = requests.get(url)
data = r.json()
timestamp = data['currentTask']['publishDate']
print(str(datetime.datetime.fromtimestamp(timestamp / 1000.0)).split()[0])

Офлайн

#7 Фев. 27, 2017 17:45:57

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Понял, почему не работало у меня - ранее путь не совсем правильный был, поэтому у меня не работало
Надо смотреть в currentTask, а не agency

 import requests
import datetime
url = 'http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224'
r = requests.get(url)
data = r.json()
timestamp = data['currentTask']['publishDate']
print (datetime.datetime.fromtimestamp(timestamp / 1000.0))



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#8 Фев. 27, 2017 17:46:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Vigi
просто выше Ваш пример
Пример - это только пример. Разумеется, я не вдавался в детали этого сайта, оно мне не надо.

А вот так вы дату форматируете?
 print(str(datetime.datetime.fromtimestamp(timestamp / 1000.0)).split()[0])

Я вас умоляю, кто ж так делает то!



Офлайн

#9 Фев. 27, 2017 19:53:19

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 143
Репутация: +  8  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

FishHook
Я вас умоляю, кто ж так делает то!

в общем всем огромный сенькс!!! получилось типа:
 import requests
from datetime import datetime
def get_output(data):
    print(datetime.fromtimestamp(data / 1000.0).strftime('%d-%m-%Y %H:%M:%S'))
def pars(urls):
    for u in urls:
        r = requests.get(u)
        data = r.json()
        try:
            get_output(data['currentTask']['publishDate'])
        except:
            try:
                get_output(data['current']['publishDate'])
            except:
                try:
                    get_output(data['currentOperation']['publishDate'])
                except:
                    try:
                        get_output(data['annualBalance']['publishDate'])
                    except:
                        try:
                            get_output(data['balance']['publishDate'])
                        except:
                            get_output(data['currentMeasureInfo']['publishDate'])
if __name__ == '__main__':
    urls = ['http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224',
            'http://bus.gov.ru/public/agency/last-agency-plan.json?agency=206030&d-5460-o=2&d-5460-s=1',
            'http://bus.gov.ru/public/agency/last-operation.json?agency=206030&stage=',
            'http://bus.gov.ru/public/agency/last-annual-balance-F0503721-info.json?agencyId=206030',
            'http://bus.gov.ru/public/agency/last-annual-balance-F0503730-info.json?agencyId=206030',
            'http://bus.gov.ru/public/annual-balance-f0503737/show-last-annual-balance.json?agencyId=206030',
            'http://bus.gov.ru/public/agency/last_activity_estate_usage_report.json?agency=206030',
            'http://bus.gov.ru/public/agency/last-measure-details.json?agency=206030'
            ]
    pars(urls)

Офлайн

#10 Фев. 28, 2017 06:23:15

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Vigi
Может без ёлочки?
 import requests
from datetime import datetime
st = ('currentTask', 'current', 'currentOperation', 'annualBalance', 'balance', 'currentMeasureInfo')
def get_output(data):
    if data:
        print(datetime.fromtimestamp(data / 1000.0).strftime('%d-%m-%Y %H:%M:%S'))
def pars(url):
        r = requests.get(url)
        data = r.json()
        for c in st:
            get_output(data.get(c, {}).get('publishDate', None))
if __name__ == '__main__':
    urls = ['http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224',
            'http://bus.gov.ru/public/agency/last-agency-plan.json?agency=206030&d-5460-o=2&d-5460-s=1',
            'http://bus.gov.ru/public/agency/last-operation.json?agency=206030&stage=',
            'http://bus.gov.ru/public/agency/last-annual-balance-F0503721-info.json?agencyId=206030',
            'http://bus.gov.ru/public/agency/last-annual-balance-F0503730-info.json?agencyId=206030',
            'http://bus.gov.ru/public/annual-balance-f0503737/show-last-annual-balance.json?agencyId=206030',
            'http://bus.gov.ru/public/agency/last_activity_estate_usage_report.json?agency=206030',
            'http://bus.gov.ru/public/agency/last-measure-details.json?agency=206030'
            ]
    for u in urls:
        pars(u)

Отредактировано noob_saibot (Фев. 28, 2017 06:28:08)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version