Python / php şablon çıkarma

3 Cevap php

Python veya php ya mevcut şablon özü kütüphaneler var mı? Perl Template::Extract, ama Python veya php ya da benzer bir uygulama bulmak mümkün olmamıştır.

Ben bulabildiğim Python yakın tek şey TemplateMaker (http://code.google.com/p/templatemaker/) olduğu, ama bu gerçekten bir şablon çıkarma kütüphane değil.

3 Cevap

Biraz daha etrafında kazma sonra ben arıyordum tam olarak ne için bir çözüm bulundu. Filippo bu yazı ekran kazıma için python çözümlerin bir listesini gönderdi: http://stackoverflow.com/questions/2861/options-for-html-scraping/1970411#1970411, aralarında scrapemark adında bir pakettir (http://arshaw.com/scrapemark/).

Bu aynı çözüm arıyor başkasının yardımcı olur umarım.

TmeplateMaker en azından belgelerine göre, gerekenleri yapmak gibi görünüyor. Bunun yerine bir girdi olarak bir şablon alma, birkaç belgeleri ise ("öğrenir") algılar. Sonra, bu şablonla oluşturulan diğer belgelerden veri ayıklamak için extract yöntemi vardır.

Örnek gösterilmektedir:

# Now that we have a template, let's extract some data.
>>> t.extract('<b>red and green</b>')
('red', 'green')
>>> t.extract('<b>django and stephane</b>')
('django', 'stephane')

# The extract() method is very literal. It doesn't magically trim
# whitespace, nor does it have any knowledge of markup languages such as
# HTML.
>>> t.extract('<b>  spacy  and <u>underlined</u></b>')
('  spacy ', '<u>underlined</u>')

# The extract() method will raise the NoMatch exception if the data
# doesn't match the template. In this example, the data doesn't have the
# leading and trailing "<b>" tags.
>>> t.extract('this and that')
Traceback (most recent call last):
...

Yani, ihtiyaç görevi başarmak için, seni gerektiğini düşünüyorum:

  • O şablondan render birkaç belgeleri vermek - bu hiçbir sorun onlardan şablonu çıkarım olacaktır.
  • Yeni belgeler veri ayıklamak için Inferred şablonu kullanın.

Bunu düşünmek gel, hatta daha kullanışlı daha bulunuyor Perl Template::Extract bunu bir temiz bir şablon sağlamak için beklemek yok gibi - bu örnek metinden kendi üzerine öğrenir.

İşte Adrian ilginç bir tartışma TemplateMaker yazarı http://www.holovaty.com/writing/templatemaker/ olduğunu

Ben bir sarıcı indüksiyon kütüphane dediğimiz gibi bir sürü gibi görünüyor.

Sizin (kazıma için daha az) daha yapılandırılabilir başka bir şey arıyor de python için, lxml.html ve BeautifulSoup bir göz atın.