Реализация на языке python2.7
Python[2] (МФА: [ˈpʌɪθ(ə)n]; в русском языке распространено название пито́н[3]) — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |
библиотеку для запросов grab - можно взять по адресу: http://grablib.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # -*- coding: utf-8 -*- import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ """ google.count Версия API 2.0 Входящие параметры: id(Строка): ID, обязательный, уникальный в рамках одного задания domain(Строка): Домен, обязательный,значение по умолчению 'google.ru' url(ссылка): URL, обязательный """ ### Создаем запрос post = { 'task' : 'google_ru_count' ### Код обработчика для google.count ,'data': simplejson.dumps({ 'param': { ### Общие параметры, их можно не передавать и оставить значение пустое, как в примере } ### Список колонок в задании, параметр id должен быть уникальным в рамках одной задачи ### Чтоб сократить объем передаваемых данных, вы можете добавить параметр data_param в data, например ### ,'data_param' : { ### 'region': u'Москва' ### } ### Тогда этот параметр будет добавлен в каждый запрос ,'data':[ ### Задание - это список ассоциативных массивов Ключ-Значение [ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ,[ { 'id' : u'ID', 'domain' : u'Домен', 'url' : u'URL', } ] ] }) } key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ url = 'http://smartfetch.io/{0}/api2/'.format(key) ### Сайт для запроса g = grab.Grab() ### Инициализация библиотеки g.setup(post=post) ### Установка параметров g.go(url) ### Запрос result = simplejson.loads(g.response.body) ### Получение ответа от сервера ### success определяет успешно ли поставили задание в очередь ### при нехватке средств на аккаунте, задания все ровно будут приниматься, но не будут обрабатываться if result['success']: print u'ok {0}'.format(result['hash']) ### параметр hash вы должны запомнить, так как по нему мы сможете получить результат else: ### Если возникнет ошибка, то вы ее сможете увидеть в параметре message if 'message' in result: print u'error {0}'.format(result['message']) else: print u'error' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # -*- coding: utf-8 -*- try: from cStringIO import StringIO except: from StringIO import StringIO import zipfile ### Библиотека работы с zip файлами import simplejson ### Библиотека - обертка JSON для языка python2.7 import grab ### библиотека для запросов http://grablib.org/ key = '[ВАШ КЛЮЧ]' ### его можно посмотреть на странице http://smartfetch.io/private/profile/ hash = 'xxxxxxxx' ### Идентификтаор, который вы получили при отправке задания url = 'http://smartfetch.io/{0}/get/{1}'.format(key,hash) ### урл для получения задания g = grab.Grab() ### Инициализация библиотеки g.go(url) ### Запрос if g.response.code == 200: ### Ответ 200 при успехе, если что-то пошло не так, то ответ будет не 200 fp = StringIO(g.response.body) ### Контент ответа zfp = zipfile.ZipFile(fp, "r") ### расзиповываем результаты ### на выходе вы получаете файлы ### результаты заданий - файлы, название файлов с идентификаторами, которые вы задавали и с расширением json ### и файл column.txt в котором будет список наименований колонок в результатах, разделенный запятыми ### Пример: id, domain, url, name_list = zfp.namelist() ### Список файлов column_list_name = 'column.txt' ### наименование файла колонок column_list = zfp.read(column_list_name).split(',') ### получение колонок for once_file in name_list: ### последовательно идем по списку файлов if once_file != column_list_name: content = zfp.read(once_file) ### распаковываем decoded = simplejson.loads(content) ### получение результата - это будет список списков ### пример распакованого результата: ### [ ### [ id, domain, url, ] ### ,[ id, domain, url, ] ### ,[ id, domain, url, ] ### ] else: ### Что-то пошло не так, показываем ошибку result = simplejson.loads(g.response.body) print u"Сообщение: {0}, код {1}".format(result['message'],result['code']) |