Как быстро пропарсить (выдернуть) ссылки из страниц сайта из списка 1.txt?
Я уже имею решение, но оно крайне медленное - около одной страницы в секунду.
Ускорил все в 10 раз путем открытия нескольких окон c разделением файла ссылок через split, но это тоже не удобно, т.к. пропарсить нужно 360к страниц сайта (из списка txt).
Мое решение на данный момент - bash + curl:
#!/bin/bash for domain in `cat link.txt` do echo $domain `curl -s $domain | grep -o 'http.*>" ' >> result.log` done
>>230010832 Все просто: у меня есть список страниц, например двача и я хочу вытянуть первую картинку с каждой, либо ссылку с нее. Имеется 360к таких страниц, проблема только в скорости или однопоточности.
На данный момент с curl + bash: стандартные средства линукса все парсится около 20 часов, такое себе занятие.
>>230011036 Я бы сделал в два этапа, сначала скачал все эти страницы на диск, операция разовая, так что пусть хоть сутки крутит, дальше уже парсер, но там можно поэкспериментировать уже, так как качать больше ничего не нужно, парсер можно накатать хоть на сишке.
>>230011308 >Я бы сделал в два этапа, сначала скачал все эти страницы на диск, операция разовая подозреваю ему надо эту операцию периодически повторять в будущем. То-есть операция какразтыке не разовая будет
>>230011376 Ну это 36 гигов, это качать пару часов, что ты и так делаешь. Очевидно проблема в грепе в одном потоке, ну не знаю, раскидай по папочкам и запусти несколько, можешь греп -m 1 написать если тебе первая ссылка нужна
На баше ты охуеешь писать многопоточный код, он для этого не заточен Бери язык, который умеет в многопоточность и работает с файлами напрямую без утилит
>>230012598 Дурачок тут только ты, пидрила невежливая. Для решения этой задачи аллах специально создал одного долбоеба на земле - тебя. Сиди и парси руками.
>>230013262 Есть частный софт, только хуй ты его найдешь, кто-то его вообще не продает, потому что сам пользуется И чаще всего он узкоспециализирован, не под твои задачи
>>230007935 (OP) Так, ещё раз. У тебя есть файл link.txt, в котором на каждой строке - адрес какого-то страницы. Тебе надо взять с каждой странички по данному адресу все ссылки? И ты хочешь это, например, в 10 потоков, чтоб было быстрее?