[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]
Я хочу выкачать тексты песен с сайта https://bandcamp.com/artist_index?page=1. Автоматически выдрать тексты со скачанных html - не проблема, проблема выкачать эти самые странцы. Как быстрее всего выкачать все html страницы со страниц всех исполнителей?
>>183829какой-то варварский подход, он настолько парсингу сопротивляется?а целиком чем угодно, хоть wget'ом
>>183830Очень много страниц - очень долго парсить.
>>183831ну качать тоже не быстро, судя по объему инфы. если только у тебя целый флот vds'ок и или ботнет какой припрятаналсо я так и не вкурил, где там вообще "тексты песен". аккаунт заводить надо?
Возможно у них есть API для этого?
>>183829Оно во много потоков с одного ip качать не дает, так что либо долго ждать либо обмазываться проксями, шардить список или делать воркеры по проксям, не забывая повторно пройтись по тому, что по какой-либо причине не скачалось.
>>183833У треков с лирикой тексты видны без аккаунта. Например, https://noellehampton.bandcamp.com/album/5-for-the-road , наведи на трек из списка и справа появится меню lyrics.>>183835API рассчитано только на тех кто толкает музыку, остальным холопам не положено. >>183836Есть ли готовые решения искаробки?
BOINC + scrapy?
>>183839>наведи на трек из списка и справа появится меню lyrics.прямо скажем, не самое очевидное решение>Есть ли готовые решения искаробки?искаропки есть разного рода комбайны и сервисы, разной степени платности и глючности, но ввиду общего объёма и специфики задачи, перспективы довольно унылыдаже при условии задействования множества воркеров через разные каналы (и если грамотно зафильтровать контент и грызть исключительно lyrics), коллизии неизбежы. пушто где-то чего-то недокачается, где-то задублируется, потом криво сошьётся etcалсо не исключена ситуация, что контент будет прибывать быстрее, чем ты успеваешь его обрабатывать, лол (мои знания о bandcamp ограничиваются фактом его существования и смутном понимании что он типа патреона для музыкантов)и, заметь, ОП, никто до сих пор не спросил зачем
>>183839
>наведи на трек из списка и справа появится меню lyrics.
прямо скажем, не самое очевидное решение
>Есть ли готовые решения искаробки?
искаропки есть разного рода комбайны и сервисы, разной степени платности и глючности, но ввиду общего объёма и специфики задачи, перспективы довольно унылыдаже при условии задействования множества воркеров через разные каналы (и если грамотно зафильтровать контент и грызть исключительно lyrics), коллизии неизбежы. пушто где-то чего-то недокачается, где-то задублируется, потом криво сошьётся etcалсо не исключена ситуация, что контент будет прибывать быстрее, чем ты успеваешь его обрабатывать, лол (мои знания о bandcamp ограничиваются фактом его существования и смутном понимании что он типа патреона для музыкантов)
и, заметь, ОП, никто до сих пор не спросил зачем
>>183839> Есть ли готовые решения искаробки?готового решения мне не попадалось на глаза. Но с шардингом все весьма просто - режешь файл со списком url через split и для каждого куска запускаешь wget -i или что-нибудь подобное со своим прокси. С воркерами несколько сложней, но за 2-3 часа набросать свое решение вполне реально.
> Есть ли готовые решения искаробки?
готового решения мне не попадалось на глаза. Но с шардингом все весьма просто - режешь файл со списком url через split и для каждого куска запускаешь wget -i или что-нибудь подобное со своим прокси. С воркерами несколько сложней, но за 2-3 часа набросать свое решение вполне реально.
>>183841> No results found for "BOINC scrapy".>>183842> не самое очевидное решениеВ наше время никого не волнуют тексты, хорошо хоть так есть.> коллизии неизбежыМне для личного пользования, несколько сотен проглоченных треков или дубликаты я как-то переживу.> зачемТак а почему нет? Я хочу послушать все песни в которых есть слова "вампайрс" и "лесбианс", но нет "дикс", а нормальный поиск по текстам если и завезли, то для каких-то попсовых реперков, у индюшатины такого готового не наблюдается.
>>183841
> No results found for "BOINC scrapy".
>>183842
> не самое очевидное решение
В наше время никого не волнуют тексты, хорошо хоть так есть.
> коллизии неизбежы
Мне для личного пользования, несколько сотен проглоченных треков или дубликаты я как-то переживу.
> зачем
Так а почему нет? Я хочу послушать все песни в которых есть слова "вампайрс" и "лесбианс", но нет "дикс", а нормальный поиск по текстам если и завезли, то для каких-то попсовых реперков, у индюшатины такого готового не наблюдается.
>>183844>No results found for "BOINC scrapy".толсто
>>183844
>No results found for "BOINC scrapy".
толсто
>>183873Может, он из Уганды. Там спид.
Ну бери и качай, в чем твоя проблема? Сколько скачается то и ладно.https://github.com/constverum/ProxyBrokerhttps://www.google.com/search?q=scrape+websites
(Хоть и посоветовал этот прокси-чекер-сервер, но замечу, что сам пользоваться не смог — cpu 100%. Питон...)
>>183924cpu 100% это у авторов руки кривые. Вот если бы память как не в себя, тогда действительно питон виноват.
>>183925А как бы найти, что там в питонокоде ест? Под чем можно запустить?
>>183926https://www.machinelearningplus.com/python/cprofile-how-to-profile-your-python-code/https://docs.python.org/3/library/profile.html
>>183926https://www.machinelearningplus.com/python/cprofile-how-to-profile-your-python-code/
https://docs.python.org/3/library/profile.html
В итоге все решили что сделать очень просто, но код никто не кинул и оп результатом не поделился. Объясните, пожалуйста, как например выкачать список из 100 тредов с новеря? Здорово было бы в это дело завернуть обычный wget, чтобы использовать рекурсию и прочие вкусности.
>>184222Если тебе просто текст то wget -i threadlist.txt, если тебе с картинками и css, чтобы локально смотреть в браузере, то wget -pki threadlist.txt.
>>184223Мне в пару десятков потоков с постоянно меняющихся айпи.
>>184224Самый простой способ - split -l на threadlist.txt и потом каждый кусок от своего ip или со своим прокси запустить. Что-то вроде http_proxy=1.1.1.1:8080 wget -i xaa.
Уважаемые знатоки, если я пихаю в функцию строки, затем эти строки в этой функции в другую функцию, затем в третью и так далее. Может ли от этого увеличиваться количество используемой ОЗУ? Строки в смысле строки, не указатели на них. Пишу не на сях. Проблема в том, что при использовании верхней функции в пуле воркеров у меня растет потребление памяти, пока не закончится. То ли я что-то делаю не правильно, то ли пул воркеров криво написан. Да, я быдлокодер, не кидайтесь тряпками.
>>184228Обычно такое бывает когда где-либо остается ссылка на сущность, порожденную функцией, вроде той же строки, которую ей передали, либо когда функция плодит сущности, которые не могут быть удалены gc. Вообще для многих языков существуют профайлеры памяти, где можно посмотреть что именно выедает память и откуда оно лезет.
>>184228Зависит от реализации. Как правило, при многопоточности всё копируется чтобы избежать синхронизаций на изменение. Если у тебя Питон, твоя реализация воркеров скорее всего память ещё и на процессы тратит, спавня инстансы через попен, в этом случае хорошо помогает планировщик памяти с cow
Как во wget поменять прокси (из списка проксей) для следующей попытки, если эта вернула ERROR 429?
>>184241Например так: if [ $? -ne 0 ] ; then http_proxy=$(grep -A1 $http_proxy proxylist.txt | tail -n1) ; fi
>>184229>>184230Я пишу брут на go. Использую github.com/alitto/pond для пула. Вроде все просто, вот воркер https://pastebin.com/S694QfJ7 ctxConnector возвращает (bool, error), вроде тоже ничего сложного. Но куда девается память после 10 минут работы?
>>184245Прошу прощения за вопрос, а с какой стороны к wget'у это тулить?
>>184247> ctxConnector возвращает (bool, error), вроде тоже ничего сложногоА соединение он за собой закрывает? В go вроде gc не подчищает незакрытые дескрипторы.Олсо: https://tproger.ru/translations/memory-leaks-investigation-in-go-using-pprof/>>184248После попытки что-либо скачать.
>>184247
> ctxConnector возвращает (bool, error), вроде тоже ничего сложного
А соединение он за собой закрывает? В go вроде gc не подчищает незакрытые дескрипторы.Олсо: https://tproger.ru/translations/memory-leaks-investigation-in-go-using-pprof/
>>184248После попытки что-либо скачать.
>>184251Там в ctxConnector есть такое:start := time.Now()ctx, cancel := context.WithDeadline(context.Background(), start.Add(time.Duration(timeout)*time.Second))defer cancel()И в логах я вижу что некоторые воркеры закрываются по дедлайну.
>>184251Там в ctxConnector есть такое:
start := time.Now()ctx, cancel := context.WithDeadline(context.Background(), start.Add(time.Duration(timeout)*time.Second))defer cancel()
И в логах я вижу что некоторые воркеры закрываются по дедлайну.
>>184252> context.WithDeadlineСоединения он за функцией подчищает? Просто с ними у gc в go могут быть проблемы: https://github.com/golang/go/issues/223 (закрыли похоже без исправления)
>>184252
> context.WithDeadline
Соединения он за функцией подчищает? Просто с ними у gc в go могут быть проблемы: https://github.com/golang/go/issues/223 (закрыли похоже без исправления)
>>184253Можно я тебя крепко обниму?
>>184254Нет, Уцуха это народное достояние, можно только смотреть.
- wakaba 3.0.7 + futaba + futallaby -