Дорос до многопоточного парсинга.
Но не знаю, как он работает.
У меня есть скрипт, который парсит странички сайта 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 милисекунд) и в это момент другой поток тоже попытается записать данные в файл? Второй поток завершится с ошибкой? Запись не произведётся? Или ещё какие-то варианты?