Expecting value: line 1 column 1 (char 0)

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
Я паршу сайт через asyncio, паршу 1000 элементов. Массив, по которому прохожу циклом, разбил на 50 массивов (20 элементов в каждом), чтобы на каждый массив выделить свое прокси (не стал вставлять часть кода с прокси, думаю это не играет роли)
Python:
res = []

async def x_get(session, t: str):
    url = f'url...{t}'
    async with session.get(url, ssl=False) as resp:
        resp_json = await resp.json(content_type=None)
        res.append(resp_json)
       
async def x_scraper():
    # 50 массивов по 20 элементов
    items = [['1', '2', '...'], ['1', '2', '...'], ['1', '2', '...'], ...]              

    async with aiohttp.ClientSession() as session:
        tasks = []
        for item in items:
            for t in item:
                task = asyncio.create_task(x_get(session, t))
                tasks.append(task)

        try:
            await asyncio.gather(*tasks)
        except Exception as ex:
            print(ex)

Парсит в основном за 3-4 секунды, но иногда один рандомный элемент парсится более 50 секунд и выдает ошибку: Expecting value: line 1 column 1 (char 0)
В массив res заносится в итоге 998-999 элементов из 1000
В чем может быть проблема и как это можно решить? Костыли также приветствуются
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
ошибка говорит о том, что начиная с первого символа там нет json
попробуйте открыть и посмотреть, что там, возможно там на самом деле нет json
или в начале идет какая то левая инфа и потом начинается json
 

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
ошибка говорит о том, что начиная с первого символа там нет json
попробуйте открыть и посмотреть, что там, возможно там на самом деле нет json
или в начале идет какая то левая инфа и потом начинается js
как открыть и посмотреть? через json открываю, показывает инфу о 998-999 символах
еще хочу отметить, что в 20% случаев все нормально парсится и никакой ошибки не выдает
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
как открыть и посмотреть? через json открываю, показывает инфу о 998-999 символах
еще хочу отметить, что в 20% случаев все нормально парсится и никакой ошибки не выдает
ну через принт вывести, или через дебагер
 

ratata

Новичок
Пользователь
Дек 29, 2021
37
1
8
ну через принт вывести, или через дебагер
Я нашел проблему, но не понимаю, почему так происходит
У меня 50 списков по 20 элементов, бот парсит списки поочередно, сначала 1, потом 2 и тд
В этих списках сами элементы парсятся не поочередно (тк асинхронка)
НО! почему-то какой-то один рандомный элемент из рандомного списка (не последний список) парсится в самую последнюю очередь. Например этот элемент находится в 3 списке, но парсится именно последним, тысячным элементом, хотя должен был парситься в этом 3 списке
В чем тут проблема?

Для наглядности:

Python:
items = [['1', '2', '3'], ['4','5', '6'], ['7', '8', '9']]

# вот так должен парсить бот
[['2', '1', '3'], ['6','4', '5'], ['7', '9', '8']]

# вот так он парсит, элемент '4' парсится 50+ секунд и выдает ошибку
[['2', '1', '3'], ['6', '5'], ['7', '9', '8', '4']]
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 650
472
83
Я нашел проблему, но не понимаю, почему так происходит
У меня 50 списков по 20 элементов, бот парсит списки поочередно, сначала 1, потом 2 и тд
В этих списках сами элементы парсятся не поочередно (тк асинхронка)
НО! почему-то какой-то один рандомный элемент из рандомного списка (не последний список) парсится в самую последнюю очередь. Например этот элемент находится в 3 списке, но парсится именно последним, тысячным элементом, хотя должен был парситься в этом 3 списке
В чем тут проблема?

Для наглядности:

Python:
items = [['1', '2', '3'], ['4','5', '6'], ['7', '8', '9']]

# вот так должен парсить бот
[['2', '1', '3'], ['6','4', '5'], ['7', '9', '8']]

# вот так он парсит, элемент '4' парсится 50+ секунд и выдает ошибку
[['2', '1', '3'], ['6', '5'], ['7', '9', '8', '4']]
я уже сказал что означает ошибка, по сути вы нечего не выяснили...
 

Форум IT Специалистов