ham html dosyadan veri ayıklamak için nasıl

5 Cevap php

Hiçbir IDs ve classes ile unsemantically yazılmış olan bir ham html istenen veri ayıklamak için bir yolu var mı? Yani, bir web sayfası (profili), kaydedilmiş bir html dosyası olduğunu varsayalım ve ben (diyelim) 'hobileri' gibi veri ayıklamak istiyorum. PHP kullanarak bunu yapmak mümkün mü?

5 Cevap

Kullan regex! Ben çocuk, ben çocuk. Aynı sayfanın durumunu biliyor ve biçim yeterince benzer kalmasını güvence altına alınırsa, o zaman el çözümleyici yazma deneyebilirsiniz. Alternatif için html ayrıştırmak orada kütüphanelerin bir yeri vardır. Ben bir tavsiye PHP yeterince aşina değilim, ama bazı Googleing size uzun bir yol alabilir eminim. Ben John Resig en pure javascript HTML parser önce birlikte şans yaşadım.

Eğer anlam inşa olmayan bir html sayfasından anlamsal bilgi gerekirse günün sonunda, muhtemelen programlı mahkum ediyoruz ve en iyi bahis mechanical turk olabilir.

Böyle this one gibi bir PHP DOM Parser, arıyoruz gibi geliyor. Muhtemelen HTML semantik yapısı gerçekten yoksun, ancak bir DOM ayrıştırıcı başlatmak için yerdir eğer ihtiyaç verileri çekmek için biraz zor olacak.

Evet tekniği denir web scraping. Onun geçerli html eğer DOM kullanabilirsiniz. Sayfa dinamik olarak oluşturulan ise jeneratör bazı yapısı kullanılmıştır olurdu ve benim deneyimlerinden her zaman ilgi unsurları izole edebilir.

DOM sizin için işe yaramazsa, sadece (Ben her zaman web örümcekler yazarken yapmak için kullanılan thats) düzenli ifadeler kullanabilirsiniz. Düzenli ifadeler daha etkili ve hızlı bir DOM heirarchy karşı mantık kazıma yazılı olduğunu. Yani profil sayfaları birkaç açın ve statik yapısını analiz etmek gerekir. Sonra sadece ilgi alanları izole etmek için normal bir ifade yazmak.

PHP ile almak için iki yaklaşım var. İlk the tidy extension kullanarak belgenizi temizlemek için bu yüzden geçerli XHTML, ve bu nedenle iyi biçimli XML, ve bu nedenle XML araçlarını kullanarak çözümlenebilir.

İkinci akım tarayıcı ayrıştırma rutinleri içine HTML5 araştırma uygulamak için çalışır html5lib çözümleyici, ve PHP serbest kullanmaktır. Bir tarayıcıda görüntülerse, html5lib ayrıştırmak olabilir.

Yaklaşım kullanılarak Eğer XPath ifadeleri kullanarak sorgulayabilir bir DOM nesnesi ile bitireceğiz. Teorik belgeler semantik yapı eksikliği olduğundan, zihniyet bir "3. p içinde 5. yayılma" den belge kesimlerinde toook isteyeceksiniz.

Daha fazla bilgi için here (self-link uyarısı).