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

Андрей П. Ковбович akovbovich на gmail.com
Чт Дек 19 07:06:56 PST 2013


Я XPath-ом парсил html, правда медленновато такой способ работает. Учить
селекторы можно на w3school.


19 декабря 2013 г., 18:14 пользователь Alexey Shrub <worldmind на mail.ru>написал:

> tidy вроде помогал
>
>
> Четверг, 19 декабря 2013, 15:24 +02:00 от Oleg Kostyuk <
> cub.uanic на gmail.com>:
>
>   А как вы боретесь с тем, что далеко не все сайты выдают валидные
> страницы?
> Парсинг ломается, селекторы не работают...
> Бежать обратно в каменный век к регуляркам?..
>
>
> 19 декабря 2013 г., 14:37 пользователь Илья Винокуров <ilvin на mail.ru<https://e.mail.ru/compose/?mailto=mailto%3ailvin@mail.ru>
> > написал:
>
>>
>> А еще селекторы можно подсмотреть в FireBug'е ...
>>
>>
>> Четверг, 19 декабря 2013, 16:20 +04:00 от Foxcool <foxcool333 на gmail.com<https://e.mail.ru/compose/?mailto=mailto%3afoxcool333@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<https://e.mail.ru/compose/?mailto=mailto%3amoscow%2dpm@pm.org>|
>> http://moscow.pm.org
>>
>>
>
>
> --
> Sincerely yours,
> Oleg Kostyuk (CUB-UANIC)
>  --
> Moscow.pm mailing list
> moscow-pm на pm.org <https://e.mail.ru/sentmsg?compose&To=moscow%2dpm@pm.org>|
> http://moscow.pm.org
>
>
>
> --
> Alexey Shrub
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131219/7a982ac5/attachment.html>


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