Как стать автором
Обновить

Комментарии 23

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

Это верно. По ссылкам тоже инструменты не менее удобные. Статью об этом нет желания написать? :-)

Нормально придумано - откручивать крестообразный шуруп плоской отверткой.

DOM - это ведь та же NoSQL база данных, где данные хранятся не линейно, а как матрешка, и доступ к ним удобно получать по цепочке, а не как из плоской таблицы.

А кто ж будет спорить, что теги вложены друг в друга как матрёшка? Когда интересует структура у документа, а не только сами данные, htmlSQL не подходит.

Когда по-быстрому нужны сами данные - вполне подходит. Например, цель: выбрать все картинки в документе.

Если нужны все картинки, nosql запрос выглядит более лаконично: "img".

Если нужны картинки с классом, то "img.classname".

Если в SQL варианте нет даже join - все равно не понимаю, зачем это нужно.

Конечно лаконичней, с этим не поспорить. Впрочем, "SELECT src FROM img" тоже умещается в одну строчку.

Крипово, но почему бы и нет?

Надо еще чутка причесать (хоть как-то к PSR привести) и оформить в композер пакетом :)

Connect делается напрямую к URL. А если надо через прокси?

Такой функциональности нет (в явном виде). Сам curl, разумеется, имеет ключ:

--proxy 11.22.33.44:5555 -U username:password

Значит можно допилить. Я, вероятно, этим займусь, когда руки дойдут. За одно избавлюсь от вызова exec() - лучше использовать функции расширения.

Как допилите — свистните?

Я почему спрашиваю? Когда-то тоже парсил кое-какую инфу с другого сайта. Сначала напрямую по HTTP. Потом по HTTPS, когда он на него перешел. По HTTP через прокси тоже получалось. А вот через HTTPS через прокси — не срослось.

Я бы хоть посмотрел — ЧЯДНТ?

Хорошо! Примеры есть, где можно потестировать, но всегда нужно искать время :-)

Не ищи для этого какие-то либы 1999 года в этот раз)) Cмотри сразу PSR7 совместимые, Guzzle например, тогда твое решение будет совместимо с миром, независимо от ОС и окружения

Кстати, так возможно и будет :-) Для редких задач я часто выбираю какой-то новый для себя инструмент. Правда, новым он может быть только для меня.

Статьи (и новости) я взял не все, а только на самые холиварные темы.
Ценные комментарии — прежняя фишка хабра — ушли в прошлое. Котиков и
маникюр в комментариях ещё не обсуждают, но исходный код и образцы конфигов
из комментариев почти исчезли
В холиварных темах их никогда и не было. Новости же это 146% мусор для подмахивания власти. Там самое интересное — посмотреть, какое дно на этот раз пробила «информационная служба Хабра».

Основные изменения кармы происходят в комментариях, а не в результате публикаций*.
Капитан Очевидность, вы вернулись! Ура!

По теме:

Данные проще вытянуть из JSON-ов, которыми обмазана «новая версия» Хабрахабра.

Например, вы: sepetov
Или я: Maccimo

Если всё же парсить HTML, то разбить скачивание HTML и его парсинг на отдельные фазы и поискать для своего любимого ЯП аналог JSOUP. Это удобнее, чем SQL в данном случае.

Красиво. Чем-то похоже на phpQuery.

JSON - это хорошо, но на нужном мне сайте ничего нет (он из статичного html, периодически обновляется каким-то генератором).

Основные изменения кармы происходят в комментариях, а не в результате публикаций*.

Увы, кажется Хабр иначе не работает, зачастую вижу пользователей с большим количеством кармы и без статей, которые намеренно стараются писать псевдо-интеллектуальные провокационные комментарии.

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

Но без статей карма не может быть выше 4. Исключение - если потом просто убрать свои публикации в черновики. Хотя в какой-то мере 4 - это тоже много, но хотя бы в минус не даёт голосовать и сливать оппонентов чисто из личной неприязни.

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

Спасибо, что вы это прочитали!

Спасибо. Давно во время чтения статей на хабре не улыбался.

У меня ещё имеется черновик статьи в похожем стиле, но опубликую не скоро - нехватка свободного времени :-)

Несколько раз сталкивался с подобной задачей - сначала использовал старичка phpQuery, но в какой то момент наткнулся на компонент из симфони - DomCrawler. У нее чуть больше функционала, чем просто парсить контент, но с этим она справляется на ура.

Парсить DOM структуру можно как с помощью xpath, так и css селекторов

Это очень хороший компонент, но я его буквально одним глазком посмотрел. Спасибо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации