2016-03-31 33 views
0

Ortaya çıkan web sayfası içeriğini elde etmeye çalışıyorum, böylece görüntü metnini çıkarabiliyorum. Aşağıdaki kodu denedim ama sonuçta oluşan html değil, bana kaynak html verir. Web sayfasının çıktısını alın C#

string urlPath = "http://www.cbsnews.com/news/jamar-clark-protests-follow-decision-not-to-file-charges-in-minneapolis-police-shooting/"; 
WebClient client = new WebClient(); 
string str = client.DownloadString(urlPath); 

Chrome tarayıcısında Geliştirici Araçları html ile str değişkeninde metin karşılaştırın ve farklı sonuçlar elde edeceksiniz.

Herhangi bir öneri takdir edilecektir.

+0

Ve soru şu ki .......? –

+0

Chrome HTML'yi ayrıştırır, sadece onu almaz. Bu, özel karakterlerin, satırların, vb. Işlemlerin gerçekleştirilmesi anlamına gelir. Tam olarak ne yapmaya çalışıyorsunuz? Gördüğünüz şey muhtemelen "Sayfa Kaynağını Göster" e daha yakındır ** edit ** Ayrıca sayfada yürütülen javascript, yüklü olan iframe'ler ve daha fazlası işlenen html'yi kaynağa göre değiştirebilir, böylece muhtemelen hiç gitmeyecek her neyse tam olarak – Matt

+0

ve soru "tarayıcıda C# ile görüntülenen metni nasıl alırım". – Garagewerks

cevap

0

Bu yazıyı istediğinizi kastettiğinizi varsayıyorum. Eğer öyleyse, farklı bir eylem planı izlemeniz gerekecektir. Başvurduğunuz sayfa, içeriğin bir kısmını temel HTML belgesine enjekte eden istemci komut dosyasına yüklenmiştir. Bu, istemci tarafındaki komut dosyasını yürüterek yapılır. İlgilendiğiniz içeriği almak için betik yürütüldükten sonra DOM'yi ayrıştırmanız gerekecek.

+0

Javascript yolunu takip edeceğim. Teşekkürler. – Garagewerks

0

Diğerleri de belirttiği gibi, gerçek bir web tarayıcısı indirilmiş HTML'yi ayrıştırır ve javascript'i çalıştırır. içeriği. Bunu kendiniz ayrıştırmayı deneyebilirsiniz, ancak en kolay yol, sizin için gerçek bir web tarayıcısını sormanız ve sonuçları almanızdır.

Özellikle C# içindeki en kolay çözüm, IE'yi programınıza yansıtan ve bunu denetlemenize olanak veren Windows Forms'tan gelen WebBrowser Control'u kullanmak olacaktır. Söz konusu URL'yi yüklemek için Navigate yöntemini kullanın, ardından DOM'da gezinmek için Document özelliğini kullanın. Bu noktada DOM'ın son içeriğini HTML olarak almak için outerHTML'u alabilirsiniz.

Bir Windows programı yazmıyorsanız ve daha fazla işlem yapmak istemiyorsanız, PhantomJS. Javascript'ten betimlenebilen ve C# 'de olmasa da size benzer yetenekler veren başsız bir Webkit tarayıcısıdır.

İlgili konular