BeautifulSoup html, xml parse işlemleri için kullanabileceğiniz bir modül. iterating, searching, ve modifying işlemleri gerçekleştirebilirsiniz.
https://pypi.python.org/pypi/beautifulsoup4/4.3.2 adresinden temin edilebilir.
Xubuntu ortamında kurulumu pip ile aşağıdaki şekilde gerçekleştirdim.
Testlerimde Python 2.7.6 (default, Mar 22 2014, 22:59:56) sürümü kullandım.
Kurulum:
aokan$ sudo pip install beautifulsoup4
Örnekler:
#!/usr/bin/python
from bs4 import BeautifulSoup, NavigableString
import urllib2
url="http://www.siyahsapka.org"
soup=BeautifulSoup(urllib2.urlopen(url).read())
# style tanimi olan span'ların style'larini temizle
for span in soup('span',style=True):
del span['style']
# tekrar eden break tag'larini (<br> veya <br />) teke indir. arada strong olsa dahi calis.
for br in soup('br'):
sibling = br.next_sibling
while sibling:
if isinstance(sibling, NavigableString):
sibling = sibling.next_sibling
continue
if sibling.name == 'br':
sibling.decompose()
elif sibling.name != 'strong':
break
sibling = sibling.next_sibling
# strong tag'i arasinda bulunan break (<br> veya <br />) ifadelerini temizle.
for strong in soup('strong'):
for br in strong('br'):
br.decompose()
# <a tag'i ile belirtilen link'leri sadece icerisindeki text kalacak sekilde temizle.
for a in soup('a'):
a.unwrap()
# gelen html'de yer alan <iframe tag ve içeriğini temizle.
for iframe in soup('iframe'):
iframe.decompose()
# formatlama isleminden sonra istedigim div icindeki veriyi al
content=unicode(soup.find('div',attrs={'class':'txtIn'}))
Detaylar için http://www.crummy.com/software/BeautifulSoup/bs4/doc/
Eğer biçimlendireceğiniz html veya url sayısı 1000 üzerinde ise bu işlemleri multithread yapmanıza imkan sağlayan scrapy ile gerçekleştirmek daha doğru olacaktır.
No comments:
Post a Comment