LINUX.ORG.RU

Как проще всего пропарсить сайт

 ,


0

1

Я думаю, например wget'ом или curl'ом, надо чтобы через прокси, скачивать по однй странице(только текст), и передавать скрипту для парсинга. Как составить такую команду?

Или может curl или wget сам может это все? Надо только чтобы страницы не складировались на диске, все щло по цепочке и удалялось

Заранее спасибо всем откликнувшимся



Последнее исправление: wgetcurl (всего исправлений: 2)
Ответ на: комментарий от wgetcurl

Но вообще это задача для однострочника на scrappy. Прокси поддерживают наверное все распространённые программы, зачастую через переменную окружения.

anonymous
()
Ответ на: комментарий от wgetcurl

Если скрапи слишком тяжёлый, можно взять попроще beautifulsoup (придётся больше кода на питоне наворачивать чем со скрапи), на баше эта задача нормально решается, только скачивать, грепать и молиться. Зависит от того что нужно, конечно, может там достаточно извесные ссылки по крону выдёргивать и синхронизировать локально. Проще когда сайт имеет машиночитаемый интерфейс. Там иногда выхлоп ластика в скриптах подгружается и прочее такое.

anonymous
()

Сферический сайт в вакууме почти никак. Для конкретного можно подобрать инструмент, может и твой ник подойдёт.

Deleted
()
Ответ на: комментарий от wgetcurl

напишу наверное на питоне

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

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

А aiohttp кстати на си? А то requests чёт совсем днище, в сотни тысяч раз сливает pycurl в многопотоке.

anonymous
()

Перестать работать в самой дерьмовой и низкооплачиваемой сфере — веб-скраппинге.

anonymous
()
Ответ на: комментарий от anonymous

За это ещё и платят? 30 евро в час будет хотя бы?

anonymous
()
Ответ на: комментарий от Miguel

В принципе это подошло бы, если бы можно было «на конвейре» парсить страницу и удалять ее, потому что места может не хватить на диске. Либо же, скачивать порциями

wgetcurl
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

да с самим парсингом я разберусь, это не проблема. Там ничего сложного, можно и на sed. Но вот как бы сделать нечто такое

wget --recursive the-site.com | sedscript 

можно такое?

wgetcurl
() автор топика
Ответ на: комментарий от wgetcurl
wget --recursive the-site.com

скачает кучу всякой срани, что не относится к делу — на сайтах обычно тьма левых ссылок. Тебе нужно скачивать отдельно каждую страницу, парсить её, на её основе создавать список загрузок, а потом качать дальше — и так в цикле. Не забыть добавить проверку на уже скачанное. Это в варианте простого сайта, а со сложным:

а то я не знаю, сколько там кода. я только тем и занят что парсингом этого сраного веба. когда приходит первое ТЗ на новый продукт - даём решение уровня моего первого ответа. а потом приходит пара уточнений и в итоге выходит мутант с тремя браузерами, каждый в трёх режимах и нейронка, которая старается не офигеть от того, какое ещё дерьмо можно запихать в браузер.

SevikL ★★★★ (04.05.19 18:19:42)

Попробуй просто открыть код того сайта, а потом представить себе процесс его обработки. Поэкспериментирую. Степень пиздеца в современном вебе трудно передать словами.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

там у wget'а есть ключи, вроде, которые указывают не ходить по сторонним ссылкам и служебным файлам. Но я не нашел которые игнорируют медиа и картинки к сожалению.

wgetcurl
() автор топика
Ответ на: комментарий от wgetcurl

Это вопрос из серии «Как проще построить дом?». Резонный вопрос — «А какой именно дом?».

Нету универсального алгоритма, для каждого дерьмосайта нужен индивидуальный набор костылей.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Ну почему, универсально запустить браузер скакать по сайтам. Только это... Ммм дороже, в более чем одном смысле.

anonymous
()
Ответ на: комментарий от anonymous

Ну почему, универсально запустить браузер скакать по сайтам. Только это... Ммм дороже, в более чем одном смысле.

кстати это единственнное нормальное рабочее решение.

Взять offscreen-броузер и им гонять по ссылкам. Забирая контент DOM __после__ отработки всех скриптов страниц.

TC вроде как владеет нодой, а для неё это точно есть

PS/ веб-девелопы макакили сайтов без статичного контента, и wget стал бесполезным

MKuznetsov ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.