Nasıl tarayıcı olarak aynı web sayfası html indirmek için WGET almak için

20

Bir web tarayıcısı kullanarak (IE veya Chrome) Bir web sayfasını (.html) Ctl-S ile kaydedebilir, herhangi bir metin editörüyle inceleyebilir ve verileri bir tablo biçiminde görebilirim. Ayıklamak istediğim numaralardan biri, ama birçok web sayfası için çok fazla el ile yapmak. Bu yüzden bu web sayfalarını birbiri ardına almak için WGET'i kullanmak ve .html'yi ayrıştırmak ve istediğim numarayı almak için başka bir program yazmak istiyorum. Ancak tarayıcı ile aynı URL'yi kullanırken WGET tarafından kaydedilen .html dosyası veri tablosunu içermez. Neden olmasın? Sunucu, isteğin bir web tarayıcısından değil WGET'ten geldiğini algılar ve veri tablosundan yoksun bir iskelet web sayfası sağlar. WGET ile tam olarak aynı web sayfasını nasıl alabilirim? - Thx!

DAHA FAZLA BİLGİ:

Getirmeye çalıştığım URL'nin bir örneği: İşte ICENX dizesi, bir dizi farklı numara sembolüne dönüşeceğimiz bir yatırım fonu sembolüdür. Bu, bir tarayıcıda görüntülendiğinde bir veri tablosu indirir, ancak WGET ile getirilirse veri tablosu eksiktir.

    
sordu user239598 27.01.2014 15:38

5 cevap

28

roadmr 'nin belirttiği gibi, bu sayfadaki tablo javascript tarafından oluşturulmuştur. wget javascript'i desteklemiyor, sadece sunucudan alınan sayfayı (yani herhangi bir javascript kodu çalıştırılmadan önce) ve bu yüzden tablo eksiktir.

phantomjs gibi javascript'i destekleyen başsız bir tarayıcıya ihtiyacınız var:

$ phantomjs save_page.js http://example.com > page.html
save_page.js ile

:

var system = require('system');
var page = require('webpage').create();

page.open(system.args[1], function()
{
    console.log(page.content);
    phantom.exit();
});

Sonra sadece bir metin çıkarmak istiyorsanız, sayfayı w3m ile oluşturmak en kolay yol olabilir:

$ w3m -dump page.html

ve / veya phantomjs komut dosyasını yalnızca ilgilendiklerini dökmek için değiştirin.

    
verilen cevap lemonsqueeze 08.11.2014 12:04
7

wget --mirror Kullanarak Tam Bir Web Sitesi İndirebilirsiniz

Örnek:

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

Tam bir web sitesini indirmek ve yerel görüntüleme için kullanılabilir hale getirmek istediğinizde çalıştırmak istediğiniz yukarıdaki komut satırı.

Seçenekler:

  • --mirror , yansıtma için uygun seçenekleri etkinleştirir.

  • -p , belirli bir HTML sayfasını doğru şekilde görüntülemek için gerekli tüm dosyaları indirir.

  • İndirme işleminden sonra
  • --convert-links , bağlantıyı yerel görüntüleme için belgeye dönüştür.

  • -P ./LOCAL-DIR , tüm dosyaları ve dizinleri belirtilen dizine kaydeder.

Wget Seçenekleri hakkında daha fazla bilgi için Bu haberi oku: Genel Bakış Tüm wget komutları ile Örnekler veya Wget’in adam sayfası .

    
verilen cevap GowriShankar 18.08.2014 14:24
2

Yalnızca --recursive yerine, URL'nizdeki her bağlantıyı "örümcek" ve "örümcek" edecek, --page-requisites kullanın. Grafiksel tarayıcılarda açıkladığınız seçenekler gibi davranmalıdır.

       This option causes Wget to download all the files that are
       necessary to properly display a given HTML page.  This includes
       such things as inlined images, sounds, and referenced stylesheets.

       Ordinarily, when downloading a single HTML page, any requisite
       documents that may be needed to display it properly are not
       downloaded.  Using -r together with -l can help, but since Wget
       does not ordinarily distinguish between external and inlined
       documents, one is generally left with "leaf documents" that are
       missing their requisites.

Daha fazla bilgi için, man wget yapın ve --page-requisites seçeneğini bulun (bir erkek sayfasını okurken aramak için "/" kullanın).

    
verilen cevap roadmr 27.01.2014 16:53
1

Sunucunun yanıtı, soran bir kaynağa bağlı olarak farklılık gösteriyorsa, çoğunlukla, sunucudan teknoloji hakkında bilgi veren, istek kaynağından gelen bir istekle sağlanan HTTP_USER_AGENT değişkeninden (yalnızca bir metin dizesi) kaynaklanmaktadır.

  1. Tarayıcı aracınızı buradan kontrol edebilirsiniz - & gt; İşte

  2. WGET kılavuzuna göre bu parametre işi yapmalıdır % Co_de%.

Eğer bu işe yaramazsa, yani tarayıcı ile aynı sayfayı elde etmek için JavaScript işleme, ya da GET parametresiyle uygun talep gerekebilir, böylece sunucu sayfayı doldurmak için JavaScript gerektirmeyen bir cevap hazırlayacaktır.

    
verilen cevap Esamo 27.01.2014 16:01
0

--recursive parametresi var. Her şeyi, bazen ne istediğinizi indirir.

wget --recursive http://url.com
    
verilen cevap Braiam 27.01.2014 15:46

Etiketlerdeki diğer soruları oku