Найти - Пользователи
Полная версия: Парсинг конкретных строк из json
Начало » Центр помощи » Парсинг конкретных строк из json
1 2
KyleshiK
Нагуглил скриптик скачивания, поменял ссылку, качает все кул

import requests, shutil, os
s='http://91.92.66.82/trash/ttv-list/ttv.json'
(dirname, filename) = os.path.split(s)
r = requests.get(s, stream=True)
if r.status_code == 200:
with open(filename, ‘wb’) as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)

только как теперь реализовать, что бы он делал это каждые 120 минут?

самый простой вариант для моего ума это конечно “планировщик заданий” в винде, может для питона есть че удобней?
PEHDOM
KyleshiK если раз в два часа то зачем чтобы скрипт висел в памяти постоянно, планировщик - то что нужно.
KyleshiK
PEHDOM
KyleshiK если раз в два часа то зачем чтобы скрипт висел в памяти постоянно, планировщик - то что нужно.
понял, спасибо
py.user.next
KyleshiK
только как теперь реализовать, что бы он делал это каждые 120 минут?
Напиши третий скрипт, который каждые 120 минут запускает скачивальщик, переименовывает скачанный файл и запускает парсер.

Можно планировщик винды использовать (или ещё какое-нибудь средство типа PowerShell), но его использование создаёт лишнюю связь программы с операционной системой. Если ты поставишь свою программу на другой компьютер, там надо будет заново настраивать планировщик, иначе работать ничего не будет само. И другое дело, если вся логика работы твоей программы находится в одном изолированном проекте. Он не зависит ни от настроек операционной системы, ни от её версии, ни даже от её вида (Windows, Linux, FreeBSD, Android).
KyleshiK
py.user.next
мм, ща буду гуглить)
KyleshiK
py.user.next
Находит заданные каналы из списка каналов в файле в JSON-формате исохраняет их в отдельный файл в JSON-формате.

заметил, что скрипт в новосозданном файле после первого знака “{” делает перенос строки “CRLF”), что мешает серверу подтянуть себе этот файл локально с папки (хз че так даже, если выкладываю этот же файл на сайт, то оттуда сервак берет файл без ошибок), можно както подправить, что б не делало этот перенос?
py.user.next
rfc. json. grammar
Нет там никаких проблем с зависимостью от символов конца строки.

KyleshiK
что мешает серверу подтянуть себе этот файл локально с папки
А как сервер загружает себе файл в память?
KyleshiK
py.user.next
rfc. json. grammarНет там никаких проблем с зависимостью от символов конца строки.

насколько я понимаю в этом куске:

def Playlistparser(self):
try:
s = requests.Session()
s.mount('file/', FileAdapter())
with s.get(config.url, headers=self.headers, proxies=config.proxies, stream=False, timeout=30) as playlist:
if playlist.status_code != 304:
if playlist.encoding is None: playlist.encoding = ‘utf-8’
self.headers = gevent.time.strftime('%a, %d %b %Y %H:%M:%S %Z', gevent.time.gmtime(self.playlisttime))
self.playlist = PlaylistGenerator(m3uchanneltemplate=config.m3uchanneltemplate)
self.picons = picons.logomap
self.channels = {}
m = requests.auth.hashlib.md5()
self.logger.info('Playlist %s downloaded' % config.url)
try:
for channel in playlist.json():
channel = name = channel.get('name', '')
channel = url = ‘acestream/%s’ % channel.get('url')
channel = channel.get('cat')
if not ‘logo’ in channel: channel = picons.logomap.get(name)
self.picons = channel

if url.startswith(('acestream/', ‘infohash/’)) \
or (url.startswith(('http/','https/')) and url.endswith(('.acelive', ‘.acestream’, ‘.acemedia’, ‘.torrent’))):
self.channels = url
channel = quote(ensure_str('%s.ts' % name),'')

self.playlist.addItem(channel)
m.update(name.encode('utf-8'))

except Exception as e:
self.logger.error(“Can't parse JSON! %s” % repr(e))
return
py.user.next
А как файл создаётся на сервере? Какие права у него после создания? Ты проверь на простом скрипте каком-нибудь, читается ли созданный файл вообще.
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