Herhangi bir dilde, bir web yakalamak ve o görüntü dosyasını kaydedebilir miyim?

3 Cevap php

Ben windows sunucu üzerinde PHP (belki 6.0 yukarıda) kullanarak web sayfalarını yakalamak mümkündür duydum.

Ben bazı örnek kod var ve test. ama haklı gerçekleştirmek için herhangi bir kodu vardır.

Eğer web sayfası web uygulamaları görüntü dosyasını kaydetmek yakalamak için bazı doğru yolu biliyorsanız?

Lütfen bana öğretin.

3 Cevap

Eğer Browsershots API kullanmak olabilir http://browsershots.org/

XML-RPC arayüzü ile gerçekten erişmek için hemen hemen her dilde kullanabilirsiniz.

http://api.browsershots.org/xmlrpc/

Eğer bir PHP çözüm istedi olsa, ben Perl ile başka bir çözümü paylaşmak istiyorum. WWW::Mechanize LWP::UserAgent ve HTML::Parser ekran kazıma yardımcı olabilir ile birlikte.

Referans için bazı belgeler:

Bir web sayfasının html indirerek yaygın ekran kazıma olarak bilinir. Eğer belirli bir sayfada veri ayıklamak için bir program istiyorsanız bu yararlı olabilir. HTTP kaynaklarını istemek için en kolay yolu, bir alet çağırma cURL kullanmaktır. cURL tek başına bir unix aracı gibi geliyor, ama her programlama dili kullanmak için kütüphaneler vardır. Unix komut satırı türünden bu sayfayı yakalamak için:

curl http://stackoverflow.com/questions/1077970/in-any-languages-can-i-capture-a-webpageno-install-no-activex-if-i-can-plz

PHP, size aynı şeyi yapabilirsiniz:

<?php 
$ch = curl_init() or die(curl_error()); 
curl_setopt($ch, CURLOPT_URL,"http://stackoverflow.com/questions/1077970/in-any-languages-can-i-capture-a-webpageno-install-no-activex-if-i-can-plz"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$data1=curl_exec($ch) or die(curl_error()); 
echo "<font color=black face=verdana size=3>".$data1."</font>"; 
echo curl_error($ch); 
curl_close($ch); 
?>

Şimdi bir web sitesinin tamamını kopyalayarak önce, onlar robotlar kendi sitesi örümcek izin olmadığını görmek için kendi robots.txt dosyasını kontrol etmelisiniz, ve size HTML olmadan veri almak için kullanılabilir sağlayan bir API var olup olmadığını kontrol etmek isteyebilirsiniz.