@Tiran_94
Python Django

Как спарсить с 511756 страниц API информацию как можно быстрее?

Мне нужно создать базу данных, с каждой страницы я вытаскиваю примерно в общем максимум 50 символов.
Пример:
import threading
import time
def parsep(ar1, ar2):
   for i in range(10000000+ar1, 10000000+ar2):
        try:
            url = "http://api.kakoeto?type=user&id=" + str(i)
            data_json = urlopen(url)
        except:
            time.sleep(1)
            url = "http://api.kakoeto?type=user&id=" + str(i)
            data_json = urlopen(url)
        d = json.loads(data_json.read().decode("utf-8"))
        if d['status'] == 'ok':
            dbCharacter(name=d['name'], id=d['id']).save()

o1 = threading.Thread(target=parsep(0, 3600), name="o1")


Возникают постоянно ошибки с соединением, из-за этого жду секунду. Попробовал через потоки запустить в итогу мне кажется что все стало еще медленнее.

Помогите как это можно реализовать?
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kgbplus
Написать скрипт в две строки для scrapy и вообще не париться, в сколько потоков он будет качать (он сам умеет определять)
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
pyCurl и MultiCurl расширят границы сознания

ну или Scrapy
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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