[Moscow.pm] Как парсить сайты?

Oleg Kostyuk cub.uanic на gmail.com
Чт Дек 19 05:24:28 PST 2013


А как вы боретесь с тем, что далеко не все сайты выдают валидные страницы?
Парсинг ломается, селекторы не работают...
Бежать обратно в каменный век к регуляркам?..


19 декабря 2013 г., 14:37 пользователь Илья Винокуров <ilvin на mail.ru>написал:

>
> А еще селекторы можно подсмотреть в FireBug'е ...
>
>
> Четверг, 19 декабря 2013, 16:20 +04:00 от Foxcool <foxcool333 на gmail.com>:
>
>    19.12.2013 15:53, Харпалёв Иван пишет:
>
> Спасибо! Очень много ссылок в тему!
> Особенно понравился вариант с  Mojo, поскольку, кажется, что материал "для
> освоения" компактнее.
>
>  Как понимаю, для того, чтобы нормально разбирать страницы, нужно
> освоиться с DOM, всякими селекторами и т.д.
> Такого бэкграунда мало(
> Как его почерпнуть? Может есть туториал из пары уроков, где парсинг и
> ликбезом?)
>
>  Встал на путь истинный, спасибо!
>
>
> 18 декабря 2013 г., 13:21 пользователь Анатолий Шарифулин <
> sharifulin на gmail.com<https://e.mail.ru/compose/?mailto=mailto%3asharifulin@gmail.com>
> > написал:
>
>> Да, на тестах сразу видно, когда парсер ломается, я иногда делаю так :)
>>
>>
>> 2013/12/18 Eugene Toropov <eugene.toropov на gmail.com<https://e.mail.ru/compose/?mailto=mailto%3aeugene.toropov@gmail.com>
>> >
>>
>>> Если там реально несколько десятков страниц и смысл в мониторинге, то
>>> можно вообще Test::Mojo и проходить последовательно. Код выглядит как-то
>>> так:
>>>
>>> $t->get_ok($t->tx->res->headers->location
>>> )->status_is('200')->element_exists('td[style="border-right:1px solid
>>> #A2C1D9;"]');
>>>
>>> $t->post_ok( $url => form => \%pay_form
>>> )->status_is(302)->header_like(Location => qr|^
>>> http://partner.a1pay.ru/a1lite/selectType|);
>>>
>>> Евгений
>>>
>>> On Dec 18, 2013, at 12:59 PM, Ivan Petrov wrote:
>>>
>>> >> Используйте Mojo::UserAgent с Mojo::DOM и Mojo::JSON, и забудьте про
>>> все ссылки
>>> >
>>> > если на производительность совсем уж наплевать, то можно и Mojo::DOM с
>>> > Mojo::UserAgent
>>> >
>>> > --
>>> > Moscow.pm mailing list
>>> > moscow-pm на pm.org<https://e.mail.ru/compose/?mailto=mailto%3amoscow%2dpm@pm.org>|
>>> http://moscow.pm.org
>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org<https://e.mail.ru/compose/?mailto=mailto%3amoscow%2dpm@pm.org>|
>>> http://moscow.pm.org
>>>
>>
>>
>>
>>   --
>> С уважением,
>>  Анатолий Шарифулин.
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org<https://e.mail.ru/compose/?mailto=mailto%3amoscow%2dpm@pm.org>|
>> http://moscow.pm.org
>>
>>
>
>
>
>
> Я в свое время неплохо освоился с Web::Scraper. Это вроде не такое
> тормозное решение, как с моджо. Однако понадобится работать  с селекторами.
> А селекторы - несложная тема. Берем и смотрим от той же моджи доку:
> http://mojolicio.us/perldoc/Mojo/DOM/CSS
> И по таким же селекторам можно ловить содержимое вебскрапером. Правда там
> необычный (вроде декларативный) интерфейс и поначалу немного ломает мозг,
> но как только вкуриваешь, то сразу же парсинг решулярками или еще какой
> изврат больше не потянет к себе. Ну а селекторы по теблице берешь и
> копируешь, какой надо. Тут достаточно иметь представление об html и css
>
> -- http://foxcool.rufoxcool@jabber.ru <https://e.mail.ru/compose/?mailto=mailto%3afoxcool@jabber.ru>
>
>  --
> Moscow.pm mailing list
> moscow-pm на pm.org <https://e.mail.ru/sentmsg?compose&To=moscow%2dpm@pm.org>|
> http://moscow.pm.org
>
>
>
> --
> Илья Винокуров
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
Sincerely yours,
Oleg Kostyuk (CUB-UANIC)
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131219/ec213d57/attachment.html>


Подробная информация о списке рассылки Moscow-pm