Forum » Programiranje » Web crawler
Web crawler
gregakop ::
Zdravo,
Rad bi napisal en simple web crawler, ki bi iz danega url-ja in podstrani pobral določene informacije.
Ali je najbolje, da uporabim cURL ali ima kdo kakšne drug predlog?
Za cURL sem našel tudi en primer pa ne dela z relativnimi url-ji: http://stackoverflow.com/questions/2313...
Kako bi spremnenil gornjo kodo da bi delala z relativnimi url-ji?
Hvala za pomoč že vnaprej.
Lp, Grega
Rad bi napisal en simple web crawler, ki bi iz danega url-ja in podstrani pobral določene informacije.
Ali je najbolje, da uporabim cURL ali ima kdo kakšne drug predlog?
Za cURL sem našel tudi en primer pa ne dela z relativnimi url-ji: http://stackoverflow.com/questions/2313...
Kako bi spremnenil gornjo kodo da bi delala z relativnimi url-ji?
Hvala za pomoč že vnaprej.
Lp, Grega
mason6 ::
Katero tehnologijo boš uporabil? Sklepam, da PHP, potem je tisti primer ok. Zakaj ne bi spremenil relativnega v absolutnega? http://stackoverflow.com/questions/2268...
Če imaš kakšno možnost delati v .NET potem uporabi htmlagilitypack in potem parsaj preko teh razredov.
LP
Če imaš kakšno možnost delati v .NET potem uporabi htmlagilitypack in potem parsaj preko teh razredov.
LP
mirancar ::
piše da dela z relativnimi url-ji
tole verjetno zaznava relativni url:
če ti ne dela pa zdebugiraj, izpisuj $href al pa $url na začetku da vidiš če mu dela pravilno
priporočam curl
Edit: I fixed some bugs from Tatu's version (works with relative URLs now).
tole verjetno zaznava relativni url:
if (0 !== strpos($href, 'http')) {
če ti ne dela pa zdebugiraj, izpisuj $href al pa $url na začetku da vidiš če mu dela pravilno
priporočam curl
gregakop ::
Spdaj je dejanska koda, ki sme jo uporabil
Zaenkrat samo izpisujem linke. Niti približno ne izpiše vseh linkov, ki so na strani. Ne uspem ugotovit kaj ni ok.
Ali lahko to mogoče kdo potestira in mi da kak nasvet glede tega kaj ne štima v skripti?
Hvala in Lp, Grega
function crawl_page($url, $depth = 5) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } $seen[$url] = true; $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); if (0 !== strpos($href, 'http')) { $path = '/' . ltrim($href, '/'); if (extension_loaded('http')) { $href = http_build_url($url, array('path' => $path)); } else { $parts = parse_url($url); $href = $parts['scheme'] . '://'; if (isset($parts['user']) && isset($parts['pass'])) { $href .= $parts['user'] . ':' . $parts['pass'] . '@'; } $href .= $parts['host']; if (isset($parts['port'])) { $href .= ':' . $parts['port']; } $href .= $path; } } echo $href.'<br />'; crawl_page($href, $depth - 1); } //echo "URL:",$url,PHP_EOL,"CONTENT:",PHP_EOL,$dom->saveHTML(),PHP_EOL,PHP_EOL; } crawl_page("http://www.thewhiskyexchange.com/", 4);
Zaenkrat samo izpisujem linke. Niti približno ne izpiše vseh linkov, ki so na strani. Ne uspem ugotovit kaj ni ok.
Ali lahko to mogoče kdo potestira in mi da kak nasvet glede tega kaj ne štima v skripti?
Hvala in Lp, Grega
Zgodovina sprememb…
- spremenil: gregakop ()
b3D_950 ::
hmmm, ker imaš onClick?:
<li><div class="product" onclick="location.href='P-25847.aspx'">
$dom->getElementsByTagName('a');
Zdaj ko je mir, jemo samo krompir.
mirancar ::
morda daj primere katerih ne najde in napiši kaj sploh najde
potem pogledaš source code od strani
recimo eno stvar ki jo vidim je tale skripta:
potem pogledaš source code od strani
recimo eno stvar ki jo vidim je tale skripta:
function quicklinks(){document.write("<div class=\"link\"><a href=\"/customerservice-delivery-charges.aspx\" title=\"Delivery Charges\">Delivery Charges</a><a href=\"/customerservice-help-ordertracking.aspx\" title=\"Track your order\">Order Tracking</a><a href=\"/customerservice-site-map.aspx\" class=\"lr\" title=\"Site Map\">Site Map</a></div>");}
Pero_SLO ::
Zanima me, če je web crawling/scraping legalno početje? Berem da je nekako sivo področje.
Hvala in LP
Hvala in LP
b3D_950 ::
Če uporabljaš za svoje projekte, ne vem v čem bi bil problem.
Web browser v ozadju počne nekaj podobnega, ko klikaš po spletnih straneh.
https://www.screamingfrog.co.uk/seo-spi...
Web browser v ozadju počne nekaj podobnega, ko klikaš po spletnih straneh.
https://www.screamingfrog.co.uk/seo-spi...
Zdaj ko je mir, jemo samo krompir.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5194 (2646) | jype |
» | [Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazoOddelek: Programiranje | 2644 (2418) | KernelPanic |
» | pomoč PHP in DOM elementiOddelek: Izdelava spletišč | 1290 (1101) | MrBrdo |
» | getElementsByTagName ne dela v ChromuOddelek: Programiranje | 1686 (1424) | win64 |
» | PHP, povezava, _SESSIONOddelek: Izdelava spletišč | 856 (681) | Lion29 |