@fridary

Как лучше запарсить себе базу данных solutions.fas.gov.ru?

solutions.fas.gov.ru - это база данных судебных решений ФАС по России
Мне необходимо её всю скачать и выгрузить в ElasticSearch. На данном сайте есть возможность просмотра результатов в JSON и XML.
Как посоветуете лучше это сделать, если здесь документов больше миллиона и при загрузки базы в формате JSON/XML хотя бы 10 документов тратится примерно 3 минуты (почему-то)?

Я думаю написать скрипт на python или php (php лучше знаю) и собственно мой метод на php будем примерно такой:
// скачиваем все документы за 2 апреля (19 штук)
$content = json_decode(file_get_contents("http://solutions.fas.gov.ru/search.json?action=search&doc_date_finish=02.04.2016&doc_date_start=02.04.2016"));
// ..сохраняем..


Вопрос: мой метод эффективен или есть лучше способы решения моей задачи? Может как-нибудь сделать через curl get и будет быстрее парситься? python или php?
  • Вопрос задан
  • 790 просмотров
Решения вопроса 1
@deliro
eventlet

Вроде такого:
import eventlet
eventlet.monkey_patch()
import requests


urls = ['http://solutions.fas.gov.ru/search.json?action=index&'
        'controller=documents&page=%s' % page for page in range(1, 29044)]

def fetch(url):
    return requests.get(url)
    
pool = eventlet.GreenPool()

for response in pool.imap(fetch, urls):
    # Клади ответ в ES
    print('gotcha')


Либо aiohttp.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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