Nasıl bir wikipedia yazı sadece ayrıştırılmış INFOBOX kapmak mı?

6 Cevap php

Ben hala wikipedia makaleleri ayrıştırmak çalışıyorum benim sorun takılıp ediyorum. Aslında ülkeye başvuru var benim uygulamadan yani wikipedia makaleleri infobox bölümünü ayrıştırmak isteyen ve her ülke sayfada ben bu ülkenin wikipedia makale karşılık verildi InfoBox göstermek mümkün olmak istiyorum. Ben burada php kullanıyorum - Herkes burada yapıyor olması gerektiği konusunda herhangi bir kod parçacıkları veya tavsiye varsa ben çok takdir ediyorum.

Tekrar teşekkürler.


DÜZENLEME

Peki ben ülkelerin isimleri ile bir db tablo var. Ve ben bir ülkeyi ve onun ayrıntılarını gösteren bir komut dosyası var. Ben InfoBox kapmak istiyorum - bu wikipedia ve sayfamda göstermek gibi tüm ülke ile mavi kutu vb görüntüleri ayrıntıları. Bunu yapmak için gerçekten çok basit ve kolay bir şekilde bilmek istiyorum - ya da sadece ben daha sonra kendimi erişebilir bir yerel uzak sisteme infobox bilgilerini indirir bir komut dosyası var. Ben burada fikirlere açığım demek - İstediğim sonuç sayfamda InfoBox görmek için olması dışında - altındaki Vikipedi bağlantısı tarafından küçük İçeriği tabii :)


DÜZENLEME

Ben YAML dilini düşünüyorum onlar veri setlerinin yükler var - Ben üzerinde http://infochimps.org için aradığını buldu düşünüyorum. Olduğu gibi ben düz yukarı bu bilgileri kullanabilirsiniz ama bazı ulus ya da böylece onların başkenti değiştirmeye karar vermedikçe infoboxes nadiren ülkede o özellikle değiştirebilirsiniz inanıyorum rağmen daha sonra sürekli şimdi wikipedia bu bilgileri güncellemek için bir yol gerekir ve olur.

6 Cevap

Ben wikipedia karşı WebRequest performans göstermektedir. Oradan sayfası var ve sadece ayrıştırmak veya size aşina bir regex, karakter sürün, ya da diğer bazı formunu kullanarak ihtiyaç verileri sorgulayabilirsiniz. Bir ekran sıyrık aslında!

Ben wikipedia (Wikimedia) API kullanmak istiyorum. Geri JSON, XML, php yerli format, ve diğerleri verileri alabilirsiniz. Daha sonra hala istediğiniz bilgi ayıklamak ve biçimlendirmek için döndürülen bilgileri ayrıştırmak gerekir, ancak bilgi kutusu start, stop ve bilgi türleri açıktır.

Bu ilk bölümde, infobox dahil ilk bölüm sonu önce malzemeyi, alır gibi, sadece rvsection = 0 için sorguyu çalıştırın. Sonra çok zor olmamalı infobox içeriği, ayrıştırmak gerekir. Resmi wikipedia API belgelerine api.php w / en.wikipedia.org / görmek ve www.mediawiki.org / wiki / API kılavuzu.

Çalıştırın, örneğin, sorgu: http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xmlfm&titles=fortran&rvsection=0

Ben zaten kullanışlı, linkable, açık formlarına wikipedia veri dönüm çalışmalarını yapmış biri yerine DBPedia kullanmanızı öneririz.

Yerine elle ayrıştırmak çalışıyorum yapılandırılmış veri ayıklamak hangi anlamsal veri sağlayıcıları bir dizi var:

  • DbPedia - bahsedildiği gibi veri sorguları için kullanılması olabilir SPARQL bitiş noktası sağlar. PHP dahil olmak üzere çoklu platformlar için mevcut kütüphanelerin bir dizi var.

  • Freebase - Başka bir Creative Commons veri sağlayıcısı. İlk veri kümesi çözümlü Vikipedi verilerine dayanarak, ancak diğer kaynaklardan alınan bazı bilgiler yoktur. Veri seti herkes tarafından düzenlenmiş olabilir ve Wikipedia aksine, özel tanımlı şema kullanarak kendi ad içine kendi veri ekleyebilirsiniz. JSON dayalı MQL denilen kendi sorgu dili kullanır. Veri geri Wikipedia makaleleri correspoding bağlantıları WebID gelmiştir. Ücretsiz tabanı da indirilebilir veri dökümleri sayıda sağlar. Freebase PHP gibi istemci kütüphaneleri numarası vardır.

  • Geonames - coğrafi konumları veritabanı. Verilen koordinatlara yakın yerlerde (örneğin şehir, tren istasyonu, vb) için Ülke ve Bölge bilgi sağlar API vardır

  • Opensteetmap - dünyanın toplum inşa haritası. Yeri ve türüne göre nesneleri sorgulamak için izin API var.

  • Wikimapia API - Başka bir konum hizmeti

Bu gitmek istediğiniz yol bağlıdır. İşte bazı olasılıklar şunlardır:

  1. Install MediaWiki with appropriate modifications. It is a after all a PHP app designed precisely to parse wikitext...
  2. static HTML version indir, ve istediğiniz parçaları ayrıştırmak.
  3. Uygun önbelleğe alma ile Wikipedia API kullanın.

DO NOT sadece canlı sayfanın son sürümünü vurdu ve app kutusunu istiyor her zaman ayrıştırma kokan. Bu sizin ve Wikimedia hem de kaynakların büyük bir kaybıdır.

Eğer bir kez tüm makaleleri ayrıştırmak istiyorsanız, wikipedia, xml formatında tüm makaleleri mevcut olduğunu

http://en.wikipedia.org/wiki/Wikipedia_database

aksi takdirde bireysel makaleleri kazımak ekran örn.