ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

Silkroad XIAN

Silkroad sevdalıları için bir server

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Python – Mechanize Modülü

 
#1

mechanize-kurulum.pngMechanize Modülü Nedir?
John J. Lee tarafından geliştirilen, web siteleri üzerinde browser gibi davranarak işlemler yapmamızı sağlayan python2x modülüdür. Aynı zamanda perl ve ruby dilleri için de yazılmıştır. Python kurulumuyla beraber gelen urllib standart modülü ile de aynı işlemleri yapabilirsiniz fakat mechanize kadar pratik değildir. Mechanize sayesinde web siteleri üzerinde proxy, cookie, header, user-agent gibi bilgileri bir kaç satır kodla yazarak zamandan kazanabilirsiniz.
Neler Yapabilirim?
  • İstediğiniz bir web sitesi hakkında günün belli saatlerinde bilgi alabilir veya bilgi gönderebilirsiniz.
    • Haftalık hava durumu takibi
    • Yorum yazma
    • Mesaj gönderme
    • Bildirimleri okuma
    • Makaleleri kaydetme vs.
  • Brute force aracı yazabilirsiniz.(uzman kullanıcılar)
    • Cookie engellerini aşma
    • robots.txt dosya engelini atlatma
    • Çok sayıda User-Agent tanımlayarak farklı tarayıcılar gibi davranma
    • Wordlist yükleyerek olasılığı arttırma
    • Proxy listesi ekleyerek anonimliği arttırma
    • Yapacağınız işlemleri random modülü kullanarak ip engelinden korunma
[*]Windows Kurulumu
  • https://pypi.python.org/pypi/mechanize/ adresinden zip uzantılı dosyayı indirip masaüstüne çıkartın.
  • Komut satırını yönetici olarak açarak masaüstü dizinine çıkarttığınız mechanize-0.2.5 dizinine cd komutunu kullanarak gelin.

    1python setup.py install
  • Komutuyla yükleme işlemini başlatın. Python konsolda import mechanize ile yüklendiğini test edebilirsiniz.
  • Python path’e ekliyse windows cmd de, linux kurulumunda verdiğim pip ve easy_install paket yöneticileriyle yükleyebilirsiniz.

[*]Linux Kurulumu
Python paket yöneticilerini kullanarak:


1



pip install mechanize


[*]

veya


1



easy_install mechanize


[*]


Mechanize Metodlarını Listeleyelim
Aşağıdaki kodları py uzantısıyla kaydedip çalıştıralım ve kullanabileceğimiz metodları görelim.


1
2
3



import mechanize
for i in dir(mechanize):
    print i


[*]


Facebook Login Örneği



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24



import mechanize
br=mechanize.Browser()
br.set_handle_robots(False)
#br.set_cookie("cookie data")
#br.addheaders = [("Referer", "http://website.com")]
#br.set_proxy("ipadress:port","http")
br.addheaders=[('User-agent', "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")]
op=br.open("https://facebook.com")
dos=open("c:\\users\\user\\desktop\\facebook.txt","w+")
username=raw_input("enter your facebook username: ")
password=raw_input("enter your facebook password: ")
br.select_form(nr=0)
br.form["email"]=username
br.form["pass"]=password
br.method="POST"
br.submit()
dos.write(br.open("https://facebook.com").read())
dos.seek(0)
text=dos.read().decode("UTF-8")
if(text.find("home_icon",0,len(text))!=-1):
print "success login."
else:
print "error login."
dos.close()


[*]

Satırları açıklayacak olursak:
1- Mechanize modülünü dahil ediyoruz.
2- Browser nesnesi oluşturuyoruz.
3- Browser nesnesinin set_handle_robots metodunu kullanarak robots.txt engeli için False değerini veriyoruz.
4- Cookie değeri ekleyebiliriz.
5- Referer bilgisi ve daha bir çok header için gerekli olan tanımlamaları yapabiliriz.
6- Proxy tanımlayabiliriz. Dosya işlemleriyle proxy list yükleyerek her üç login denemesinden sonra değişecek şekilde ayarlayabiliriz. set_proxy fonksiyonunun ilk parametresine dosyadan okuduğumuz tek satırlık string proxy değerini verebiliriz ? yapacaklarınız hayal gücünüze bağlı.
7- Browser kimliğini (user-agent) tanımlıyoruz. Kendi tarayıcınızın user-agent bilgisini öğrenmek için live http header gibi eklentiler kullanabilirsiniz veya bu siteden user-agent listesine ulaşabilirsiniz > useragentstring.com
8- Browser nesnesinin open fonksiyonunu kullanarak sayfayı açıyoruz.
9- Masaüstünde html kodlarının kaydedileceği dosyayı oluşturuyoruz. user değerini kendi kullanıcı adınızla değiştirmeyi unutmayın. Bu kod windows dizin değerine göre oluşturuldu. Linux için değerleri ayarlamalısınız.
10- Kullanıcıdan user pass alıyoruz.
12- Post yapacağımız form kısmının html kodunda kaçıncı sırada olduğunu belirtiyoruz. Sayfa içerisinde birden fazla form kısmı olabilir. Html kaynak kodunu inceleyerek öğreniyoruz. İlk sıradaysa sıfır yazıyoruz.
13- Sayfada bulunan username ve password kısmının name değerlerine raw_inputla aldığımız değerleri atıyoruz.
15- Form verilerinin hangi metotla işleneceğini belirliyoruz.
16- Girilen verileri gönderiyoruz.
17- Login denemesinden sonra anasayfanın html kodunda işlem yapacağımız için browser nesnesinin read fonksiyonuyla masaüstü dizinine kaydediyoruz.
18- Dosya işaretçisini başa alıyoruz.
19- Açmış olduğumuz dosyayı text değişkeniyle işlem yapmak için eşitliyoruz.
20- Login olup olamadığımızı kontrol etmek için ana sayfadaki html kodundan login sayfasında bulunmayan bir kod seçiyoruz.Farklı bir değerde seçebilirdik. Facebook’ta güncellemeler yapıldığında kullandığım bu html değeri değişebilir ve kod düzgün çalışmaz. Bu değeri siz güncelleyebilirsiniz.
Denemek isteyenler için programın derlenmiş hali:
  • Derlemek için pyInstaller kullanıldı.
  • Diğer bilgisayarlarda çalışabilmesi için winpaths modülü kullanıldı.
  • Komut satırının hemen kapanmaması için time kütüphanesiyle 3 saniye bekleme süresi konuldu.

[*]Kod: http://pasted.co/96bbf70c
exe: indir



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Python ile Twitter Kullanmak - Tweepy Modülü (Twitter API) efsane 1 1,288 10-10-2018, Saat: 10:09
Son Yorum: adminn
  Python 3 MySQL Kullanımı dalaylama 0 815 23-12-2017, Saat: 17:39
Son Yorum: dalaylama
  Python'da Struct Kullanımı blueman 0 1,002 30-08-2017, Saat: 22:22
Son Yorum: blueman
  Python'da Zincirleme Metodlar blueman 0 850 30-08-2017, Saat: 22:13
Son Yorum: blueman
  python da uygulama yaptık nasıl dağıtacağız ? dalaylama 0 1,120 07-08-2017, Saat: 22:27
Son Yorum: dalaylama

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2018 Tüm hakları saklıdır.