[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1607719976098.jpg -(130914 B, 850x550) Thumbnail displayed, click image for full size.
130914 No.183829  

Я хочу выкачать тексты песен с сайта https://bandcamp.com/artist_index?page=1. Автоматически выдрать тексты со скачанных html - не проблема, проблема выкачать эти самые странцы. Как быстрее всего выкачать все html страницы со страниц всех исполнителей?

>> No.183830  

>>183829
какой-то варварский подход, он настолько парсингу сопротивляется?
а целиком чем угодно, хоть wget'ом

>> No.183831  

>>183830
Очень много страниц - очень долго парсить.

>> No.183833  

>>183831
ну качать тоже не быстро, судя по объему инфы. если только у тебя целый флот vds'ок и или ботнет какой припрятан
алсо я так и не вкурил, где там вообще "тексты песен". аккаунт заводить надо?

>> No.183835  

Возможно у них есть API для этого?

>> No.183836  
File: 1607723520316.jpg -(301303 B, 1320x1815) Thumbnail displayed, click image for full size.
301303

>>183829
Оно во много потоков с одного ip качать не дает, так что либо долго ждать либо обмазываться проксями, шардить список или делать воркеры по проксям, не забывая повторно пройтись по тому, что по какой-либо причине не скачалось.

>> No.183839  

>>183833
У треков с лирикой тексты видны без аккаунта. Например, https://noellehampton.bandcamp.com/album/5-for-the-road , наведи на трек из списка и справа появится меню lyrics.
>>183835
API рассчитано только на тех кто толкает музыку, остальным холопам не положено.
>>183836
Есть ли готовые решения искаробки?

>> No.183841  

BOINC + scrapy?

>> No.183842  

>>183839

>наведи на трек из списка и справа появится меню lyrics.

прямо скажем, не самое очевидное решение

>Есть ли готовые решения искаробки?

искаропки есть разного рода комбайны и сервисы, разной степени платности и глючности, но ввиду общего объёма и специфики задачи, перспективы довольно унылы
даже при условии задействования множества воркеров через разные каналы (и если грамотно зафильтровать контент и грызть исключительно lyrics), коллизии неизбежы. пушто где-то чего-то недокачается, где-то задублируется, потом криво сошьётся etc
алсо не исключена ситуация, что контент будет прибывать быстрее, чем ты успеваешь его обрабатывать, лол (мои знания о bandcamp ограничиваются фактом его существования и смутном понимании что он типа патреона для музыкантов)

и, заметь, ОП, никто до сих пор не спросил зачем

>> No.183843  
File: 1607727825934.jpg -(118127 B, 850x855) Thumbnail displayed, click image for full size.
118127

>>183839

> Есть ли готовые решения искаробки?

готового решения мне не попадалось на глаза. Но с шардингом все весьма просто - режешь файл со списком url через split и для каждого куска запускаешь wget -i или что-нибудь подобное со своим прокси. С воркерами несколько сложней, но за 2-3 часа набросать свое решение вполне реально.

>> No.183844  

>>183841

> No results found for "BOINC scrapy".

>>183842

> не самое очевидное решение

В наше время никого не волнуют тексты, хорошо хоть так есть.

> коллизии неизбежы

Мне для личного пользования, несколько сотен проглоченных треков или дубликаты я как-то переживу.

> зачем

Так а почему нет? Я хочу послушать все песни в которых есть слова "вампайрс" и "лесбианс", но нет "дикс", а нормальный поиск по текстам если и завезли, то для каких-то попсовых реперков, у индюшатины такого готового не наблюдается.

>> No.183873  

>>183844

>No results found for "BOINC scrapy".

толсто

>> No.183915  

>>183873
Может, он из Уганды. Там спид.

>> No.183922  
File: 1607987122963.png -(532899 B, 650x920) Thumbnail displayed, click image for full size.
532899

Ну бери и качай, в чем твоя проблема? Сколько скачается то и ладно.
https://github.com/constverum/ProxyBroker
https://www.google.com/search?q=scrape+websites

>> No.183924  

(Хоть и посоветовал этот прокси-чекер-сервер, но замечу, что сам пользоваться не смог — cpu 100%. Питон...)

>> No.183925  

>>183924
cpu 100% это у авторов руки кривые. Вот если бы память как не в себя, тогда действительно питон виноват.

>> No.183926  

>>183925
А как бы найти, что там в питонокоде ест? Под чем можно запустить?

>> No.183927  

>>183926
https://www.machinelearningplus.com/python/cprofile-how-to-profile-your-python-code/

https://docs.python.org/3/library/profile.html

>> No.184222  

В итоге все решили что сделать очень просто, но код никто не кинул и оп результатом не поделился. Объясните, пожалуйста, как например выкачать список из 100 тредов с новеря? Здорово было бы в это дело завернуть обычный wget, чтобы использовать рекурсию и прочие вкусности.

>> No.184223  
File: 1608717433171.jpg -(130364 B, 463x550) Thumbnail displayed, click image for full size.
130364

>>184222
Если тебе просто текст то wget -i threadlist.txt, если тебе с картинками и css, чтобы локально смотреть в браузере, то wget -pki threadlist.txt.

>> No.184224  

>>184223
Мне в пару десятков потоков с постоянно меняющихся айпи.

>> No.184226  
File: 1608721968810.png -(861762 B, 1412x959) Thumbnail displayed, click image for full size.
861762

>>184224
Самый простой способ - split -l на threadlist.txt и потом каждый кусок от своего ip или со своим прокси запустить. Что-то вроде http_proxy=1.1.1.1:8080 wget -i xaa.

>> No.184228  

Уважаемые знатоки, если я пихаю в функцию строки, затем эти строки в этой функции в другую функцию, затем в третью и так далее. Может ли от этого увеличиваться количество используемой ОЗУ? Строки в смысле строки, не указатели на них. Пишу не на сях. Проблема в том, что при использовании верхней функции в пуле воркеров у меня растет потребление памяти, пока не закончится. То ли я что-то делаю не правильно, то ли пул воркеров криво написан. Да, я быдлокодер, не кидайтесь тряпками.

>> No.184229  
File: 1608736547563.jpg -(150054 B, 846x1052) Thumbnail displayed, click image for full size.
150054

>>184228
Обычно такое бывает когда где-либо остается ссылка на сущность, порожденную функцией, вроде той же строки, которую ей передали, либо когда функция плодит сущности, которые не могут быть удалены gc. Вообще для многих языков существуют профайлеры памяти, где можно посмотреть что именно выедает память и откуда оно лезет.

>> No.184230  

>>184228
Зависит от реализации. Как правило, при многопоточности всё копируется чтобы избежать синхронизаций на изменение. Если у тебя Питон, твоя реализация воркеров скорее всего память ещё и на процессы тратит, спавня инстансы через попен, в этом случае хорошо помогает планировщик памяти с cow

>> No.184241  

Как во wget поменять прокси (из списка проксей) для следующей попытки, если эта вернула ERROR 429?

>> No.184245  
File: 1608795368679.jpg -(323856 B, 720x800) Thumbnail displayed, click image for full size.
323856

>>184241
Например так: if [ $? -ne 0 ] ; then http_proxy=$(grep -A1 $http_proxy proxylist.txt | tail -n1) ; fi

>> No.184247  

>>184229
>>184230
Я пишу брут на go. Использую github.com/alitto/pond для пула. Вроде все просто, вот воркер https://pastebin.com/S694QfJ7 ctxConnector возвращает (bool, error), вроде тоже ничего сложного. Но куда девается память после 10 минут работы?

>> No.184248  

>>184245
Прошу прощения за вопрос, а с какой стороны к wget'у это тулить?

>> No.184251  
File: 1608800420955.jpg -(225411 B, 1000x1400) Thumbnail displayed, click image for full size.
225411

>>184247

> ctxConnector возвращает (bool, error), вроде тоже ничего сложного

А соединение он за собой закрывает? В go вроде gc не подчищает незакрытые дескрипторы.
Олсо: https://tproger.ru/translations/memory-leaks-investigation-in-go-using-pprof/

>>184248
После попытки что-либо скачать.

>> No.184252  

>>184251
Там в ctxConnector есть такое:

start := time.Now()
ctx, cancel := context.WithDeadline(context.Background(), start.Add(time.Duration(timeout)*time.Second))
defer cancel()

И в логах я вижу что некоторые воркеры закрываются по дедлайну.

>> No.184253  
File: 1608801800960.jpg -(234907 B, 1600x1200) Thumbnail displayed, click image for full size.
234907

>>184252

> context.WithDeadline

Соединения он за функцией подчищает? Просто с ними у gc в go могут быть проблемы: https://github.com/golang/go/issues/223 (закрыли похоже без исправления)

>> No.184254  

>>184253
Можно я тебя крепко обниму?

>> No.184255  

>>184254
Нет, Уцуха это народное достояние, можно только смотреть.



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]