LINUX.ORG.RU

Ищу софт для XPATH запросов

 


0

2

Добрый день. По долгу службы часто приходиться писать XPATH запросы к сайтам. Может быть есть какая-либо программа для получения данных с сайта по XPATH? Из требований - прокси (стало актуально после работы с американскими интернет-магазинами которые блочат все российские ip), а также вывод в человеко-читаемом виде.

env http_proxy=http://адрес_твоего_прокси:порт_твоего_прокси curl http://example.com/example.xml | xpath -q -e query

dexpl ★★★★★
()
Ответ на: комментарий от dexpl
~~~
andrey@andrey-MS-7817:~$ curl https://php.net | xpath -q -e "//a/@href"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 60253    0 60253    0     0   111k      0 --:--:-- --:--:-- --:--:--  111k

mismatched tag at line 47, column 2, byte 1975:
 <base href="https://www.php.net/index.php">

</head>
=^
<body class="home ">

 at /usr/lib/x86_64-linux-gnu/perl5/5.26/XML/Parser.pm line 187.
Andreezy
() автор топика

Наверное можно запустить брозуер в режиме headless и использовать querySelector вместо XPath. Идеи черпать из Selenium.

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

это перлопараша, возьмите xmllint — он умеет с малформед дерьмом работать (хотя у меня и он сыпался)

anonymous
()
Ответ на: комментарий от Andreezy
└► curl -Ls https://php.net | tidy -asxhtml -q 2>/dev/null | xpath -q -e "//a/@href" | head
 href="/"
 href="/downloads"
 href="/docs.php"
 href="/get-involved"
 href="/support"
 href="/manual/en/getting-started.php"
 href="/manual/en/introduction.php"
 href="/manual/en/tutorial.php"
 href="/manual/en/langref.php"
 href="/manual/en/language.basic-syntax.php"

, причем "| head" сугубо из-за того, что иначе сообщение слишком большое — у себя убери его и получишь нужный результат.

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

просто прекратите работать с html с помощью утилит предназначенных исключительно для xml — это нездоровая тема

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

Я уже предложил libxml2, она умеет работать с html.

Если нужная более полная поддежка с разбором dom и всем остальным, есть тот стрёмный карманный движок который недавно стали пихать в некоторые популярные проекты вроде даже с теми же целями. Всё время забываю название. Там версия что-то вроде 0.2 и это не то о чём можно подумать, я даже нагуглить не могу. Спросите у Iron_Bug.

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