Simple Windows console pipe xpath parser:
Download exe: xpather.zip
Source C-Sharp: xpather-source.zip
Sample usage:
wget -O - -q https://edition.cnn.com/ | xpather "//div/ul/li/a[contains(@class,'m-legal__links')]"
Simple Windows console pipe xpath parser:
Download exe: xpather.zip
Source C-Sharp: xpather-source.zip
Sample usage:
wget -O - -q https://edition.cnn.com/ | xpather "//div/ul/li/a[contains(@class,'m-legal__links')]"
Написах скромно скриптче на PHP за прилагане на XPath изрази през командния ред. Скрипта изисква инсталиран Lynx или, ако се ползва под Windows трябва да се постави Lynx в същата директория. Готиното на това програмче е, че не се интересува дали има грешки в страницата.
<?php if ($argc != 3 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) { ?> This is a XPath extractor. REQUIRES: "lynx" to be installed! USAGE: <?php echo $argv[0]; ?> <site> <xpath> EXAMPLE: <?php echo $argv[0]; ?> http://site.com/some_page.html "//a[contains(@href,\"?rec\") and not(contains(@href,\"comment\"))]/@href" -------------------- With the --help, -help, -h, or -? options, you can get this help. <?php } else { $site=$argv[1]; function get_cont($url){ $c = `lynx -source $url`; return $c; } $html = get_cont($site); $dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $hrefs = $xpath->evaluate($argv[2]); for ($i = 0; $i < $hrefs->length; $i++) { $bb = $hrefs->item($i)->nodeValue; print "$bb\n"; } } ?> |
Начин на употреба:
php xpath.php site.com/some_page.html "//a[contains(@href,\"?rec\") and not(contains(@href,\"comment\"))]/@href" |
Остава да успея и да го компилирам :). За сега съм пробвал с Bambalam compiler, Roadsend, phc и още няколко по-незнайни емдера и компилатора, но … дърво от всякъде. Все пак, ако си имате инсталиран php и Lynx си работи идеално.
Lynx за Winblowz може да се ползва от тук: Lynx for Windows
Причината да използвам конзолния браузер Lynx е, че много сайтове използват gzip компресия на страниците, за да се зареждат по-бързо. Така не ми се налага да правя еквилибристики от сорта на:
wget -O - somesite.com | gunzip -c |