2 Mart 2014 Pazar

Python - pyquery Modülü

pyquery Html parçalamanızı sağlayan bir modül. Bu modülün en muhteşem yanı ise bu parçalama işlemini yaparken Jquery seçicilerini ve fonksiyonlarını kullanıyor olmanız. Eğer az bir şey Jquery biliyorsanız bu modülü kullanarak bir İnternet sayfasının kaynağından istediğiniz kısımı çok kolay bir şekilde alabilirsiniz.





Kurulum
Kurmak için şu komutu verin
sudo pip install pyquery;
Kurulum tamam olduğuna göre kullanabiliriz. Bağlandığımız sitenin başlığını alalım.
from pyquery import PyQuery

k = PyQuery("http://mazlumagar.com")

print k('title').html()
#Çıktı;
Mazlum Ağar
Gördüğünüz gibi k nesnesi üzerinde Jquery özelliklerini kullanabiliyoruz. Özellik silebiliriz.
k = PyQuery('')
k.remove_attr('class')
print k
#Çıktı;
<div><a href="">Baglanti</a></div>
class özelliğini sildik. Öğe içerisinden nesne seçebilir, nesne arayabilir, bulduğumuz nesnenin içeriğini değiştirebiliriz. Hepsini birden yapalım.
from pyquery import PyQuery
k = PyQuery("http://mazlumagar.com")
print k('.commentcount').eq(0).find("a").append(" Link icerigi degistirildi")
#Çıktı;
<a href="http://www.mazlumagar.com/linuxa-postgresql-kurulum/#comments" class="comment-link" title="Linux’a PostgreSQL Kurulum için yapılan yorumlar"><span class="icon comments"/> 1 Yorum Link icerigi degistirildi</a>
Örneğin bağlandığımız sitenin menu kısmındaki bağlantıların linklerini alalım.
for i in k(".menu").find("ul").find("li").items("a"):
    print i.attr("href")
#Çıktı
http://www.mazlumagar.com/hakkimda/
http://www.mazlumagar.com/iletisim/
Son olarak bağlandığımız sayfadaki yazıların başlıklarını alalım.
for a in k('.postcontent').find("h2").items("a"):
    print a.html()
#Çıktı;
Linux’a PostgreSQL Kurulum
Ubuntu Üzerine VMware Workstation Kurulumu
Linux Komutları 3 – Dosya İşlemleri
Linux Komutları 2 – Dizin İşlemleri
Linux Komutları 1
CKeditor Resim Upload İşlemi
Ubuntu TeamViewer Kurulumu
Elementary Os
Linux Guake Terminal
Ubuntu’da htaccess Dosyası Oluşturma
Gördüğünüz gibi birazcık JQuery bilginiz varsa bu modül sayesinde HTML parse(parçalamak) gerçekten de çok kolay.
Daha fazla bilgiye kendi dökümantasyonundan ulaşabilirsiniz.
https://pythonhosted.org/pyquery/api.html

3 yorum :

  1. sudo pip install pyquery;
    kurulumu denediğimde
    SyntaxError: invalid syntax hata veriyor?

    YanıtlayınSil
    Yanıtlar
    1. Sona eklediğiniz ";" kaldırıp öyle deneyin lütfen.

      Sil
  2. Kurmak için gerek pip kullanarak gereksede setup.py ile denememe rağmen hata aldım. Biraz araştırınca hatanın oldukça meşhur bir hata olduğunu öğrendim. En azından windows altında python ile çalışanlar için meşhur diyebiliriz. Derleyici probleminden kaynaklanan bir hata. Sanırım bu modul içerisinde lxml diye bir module kullanıyor ve bu modulun kurulmasında bu hata oluşuyor. Çünkü derlenmesi gereken bir takım kodlar içeriyor bu modül. Birkaç yöntem denedim fakat en sonunda şu şekilde çözdüm. Aşağıda linkini vermiş olduğum adreste python'un çok sık kullanılan modullerinin derlenmiş halleri var. Bunları exe haline hatta bir install dosyası haline getirilmiş. Oradan "lxml" istediğim sürümünü kurarak sorunu çözdüm.

    Python derlenmiş kütüphaneler: www.lfd.uci.edu/~gohlke/pythonlibs/

    YanıtlayınSil