Было бы хорошо уточнить какой товар.
Если товар какой-то редкий и магазины всегда разные, то проще нанимать раба рабочего, который будет покупать товар, как только появится. Невозможно написать скрипт покупки товаров с неизвестных магазинов. Я тоже некоторые магазины (конкретно, кошельки) находил на https://lolz.guru/. Но я заранее списывался с продавцами и уточнял объемы, оптовые цены. Они направляли меня на свой сайт магазина или бота в телеге.
Единственное адеватное, что можно сделать - это парсить (находить в автоматическом режиме) посты о продаже такого-то товара и записывать ссылки на посты (а после их вручную посещать). Но даже в этом случае часто бывают скамеры (воры геи пидоры), которые пишут о продаже такого-то товара и сливаются при первой оплате. Проще найти конкретный магазин и скупать нужный товар, заранее списавшись с продавцом. А если есть конкретный магазин, то написать скрипт покупки способен почти каждый на этом форуме.
P.s. И насчет чекера товара, а потом покупки - это так не работает. Ты сначала покупаешь товар и только потом можешь его прочекать. В хороших магазинах при нерабочем товаре есть замена - ты сообщаешь, что такие-то штуки нерабочие, и тебе делают замену.
Как сделать многопоточный парсинг (объясните простыми словами, пожалуйста)
-
Дорос до многопоточного парсинга.
Но не знаю, как он работает.У меня есть скрипт, который парсит странички сайта example.com.
Странички имеют такой адрес:
example.com/1
example.com/2
...
example.com/10000Я создал массив с цифрами от 1 до 10 000 (чтобы перебрать все странички с 1ой по 10 000ую).
Скрипт берёт первый элемент массива (1), собирает адрес странички, загружает страничку, парсит данные, записывает в файл.
Затем срипт берёт второй элемент массива (2) и делает аналогичные действия.Вопросы:
- Бесплатная версия позволяет работать в многопоточном режиме?
- Как модифицировать скрипт, чтобы парсинг работал в многопоточном режиме?
Я так понял, что каждый поток должен взять определённый диапазон адресов страничек (например с 1 по 500, с 501 по 1000 и т.д.) и распарсить его. Но как потоки поймут, что:
- Нужно брать цифры именно из моего массива
- Какой диапазон брать (какие уже взяты соседними потоками)
- Все потоки должны записать результат парсинга в один .txt файл, лежащий на локальном диске. Что произойдёт, если один поток будет писать данные в файл (допустим 20 милисекунд) и в это момент другой поток тоже попытается записать данные в файл? Второй поток завершится с ошибкой? Запись не произведётся? Или ещё какие-то варианты?
-
Если url отличается только числом, то можно получить у каждого потока [[THREAD_INDEX]] в "Статистика скрипта".
Далее можно запустить цикл через For и чтобы каждый поток брал свои страницы, то нужно все это умножать на [[THREAD_INDEX]]
Как вариант установить границы для цикла Forот ([[THREAD_INDEX]]-1)*10000+1 до [[THREAD_INDEX]]*10000При данной логике каждый поток будет обрабатывать по 10000 вариантов
Также можно вручную поделить диапазоны и расписать их в txt файле и "Парсить строку"
0;100000 100001;200000 200001;300000 и т.д -

И чтобы лучше разобраться, то нужно посмотреть видео
-
@tet-vivi said in Как сделать многопоточный парсинг (объясните простыми словами, пожалуйста):
@GameBot из-за разницы выполнения некоторые потоки будут простаивать вконце
Чтобы этого избежать можно тупо взять и загнать в файл с 1 до последнего нужного нам id. Далее создать ресурс из файла.
Единственная проблема: что делать если требуется спарсить более миллиона страниц? -
использовать бд.
можно пачками получать набор ид которые еще не обработаны.
опробовано на практике.(~15 миллионов ид/страниц)
можно на асинхронных функциях в цикле.
текущий N и запуск новых M. и при интеграции N = N + M.
Чтобы этого избежать можно тупо взять и загнать в файл с 1 до последнего нужного нам id. Далее создать ресурс из файла.
если не критично, можно исключить работу с файлом. А сразу создать ресурс и загнать туда набор ид.