Найти - Пользователи
Полная версия: Спарсить данные с указанного url
Начало » Network » Спарсить данные с указанного url
1 2 3 4 5 6
FishHook
 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)

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

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

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

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

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

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




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


Vigi
ну все разобрался низкий поклон!
просто выше Ваш пример:
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])
ajib6ept
Понял, почему не работало у меня - ранее путь не совсем правильный был, поэтому у меня не работало
Надо смотреть в 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))
FishHook
Vigi
просто выше Ваш пример
Пример - это только пример. Разумеется, я не вдавался в детали этого сайта, оно мне не надо.

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

Я вас умоляю, кто ж так делает то!
Vigi
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)
noob_saibot
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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB