Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Thrading hakkında yardım
#1
Aşağıdaki script forumda konusu olan "facebook browser" adlı scriptin biraz değiştirilmiş hali. Facebook browser da sayfanın verilerini alıp gösteriyordu benim yapmaya çalıştığım ise kendi oluşturduğum server dan direk linki verilen dosyayı indirmek.

Ama Python da Threading işlemini henüz yapamadığım için hızı çok düşük.

PHP Kod:
#-*-coding:utf8;-*-
from threading import Thread
from Queue import Queue
import HTMLParser
import urllib2
,requests,base64,zlib
import re
,sys,urllib,time,os
import platform
,subprocess 


def yaz
(parametretime_sleep 0.02):
 
   for i in parametre:
 
       time.sleep(time_sleep)
 
       sys.stdout.write(i)
 
       sys.stdout.flush()

if 
platform.platform().startswith("Linux"):    
    try
:
 
       import mechanize
    except
:
 
       yaz("Gerekli modüller yükleniyor...\n")
 
       arg="pip install mechanize"
 
       os.system(sys.executable+" "+sys.prefix+"/bin/"+arg)
 
       os.execv(sys.executable, ['python'] + sys.argv)
 
       import mechanize
    try
:
 
       from bs4 import BeautifulSoup
    except
:
 
       arg="pip install bs4"
 
       os.system(sys.executable+" "+sys.prefix+"/bin/"+arg)
 
       os.execv(sys.executable, ['python'] + sys.argv)
 
       from bs4 import BeautifulSoup
else:
 
   try:
 
       import mechanize
    except
:
 
       yaz("Gerekli modüller yükleniyor...\n")
 
       subprocess.call(["python","-m","pip","install","mechanize"])
 
       import mechanize
    try
:
 
       from bs4 import BeautifulSoup
    except
:
 
       subprocess.call(["python","-m","pip","install","bs4"])
 
       from bs4 import BeautifulSoup


HTMLParser.HTMLParser()
br mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent''Mozilla/5.0 (compatible; Konqueror/3; Linux)')]
face='https://developers.facebook.com/tools/debug/echo/?q='
vps='http://18.197.133.16/'
django='http://18.197.133.16:8000/'
y='Facebook File downloader'
a='http://www.qpython.club'
c='by Ethnic'
des'#'*60
yaz
(des+'\n\n- '+y+'\n\n- '+a+'\n\n- '+c+'\n\n'+des+'\n',0.006)

def parcala():
 
   url=raw_input("\nlink gir:")
 
   info br.open(face+django+"info/?info="+base64.b64encode(url)).read()
 
   try:
 
       info info.split("bas--")[1].split("--son")[0]
 
       a=500000  #in byte
 
       value info.split("boyut=")[1].split("--")[0]
 
       typefile info.split("type=")[1].split("--")[0]
 
       etag info.split("e-tag="")[1].split(""--")[0]
 
       toplam_part info.split("toplam_part=")[1].split("--")[0]
 
       numsplits int(value) / int(a)
 
       yaz("\n\nboyut="+str(int(value)/int(1024*1024))+"MB"+"\n"+"type="+str(typefile)+"\n"+"e-tag="+str(etag)+"\n"+"toplam_part="+str(numsplits)+"\n")
 
   except:
 
       yaz("direk indirme linki degil!")
 
       quit()
 
   lst = []
 
   for i in range(numsplits):
 
       if i == 0:
 
           lst.append('%s-%s' % (int(i), int(round(int(i) * int(value)/(numsplits*1.0) + int(value)/(numsplits*1.0)-10))))
 
       else:
 
           lst.append('%s-%s' % (int(round(int(value)/(numsplits*1.0),0)), int(round(int(i) * int(value)/(numsplits*1.0) + int(value)/(numsplits*1.0)-10))))
 
   dosyaismi=raw_input("isim:")
 
   dosya=open(dosyaismi,"w+b")
 
   sira=0
    for aralik in lst
:
 
       reqbr.open(face+django+"faceden/?veri="+base64.b64encode(url)+","+base64.b64encode(str(aralik))).read()
 
       #time.sleep(2)
 
       base req.split("bas--")[1].split("--son")[0]
 
       dosya.write(zlib.decompress(base64.b64decode(base)))
 
       yaz("\n"+str(sira)+"/"+str(toplam_part)+" part bitti",0.001)
 
       sira+=1
    dosya
.close
    yaz
("indirme bitti")
 
   return lst

    

if platform.platform().startswith("Linux"):        
    try
:
 
       mail=open("/sdcard/mail.txt")
 
       mail=mail.read()    
    except
   
        mail
=open("/sdcard/mail.txt","w")
 
       mail=mail.write(raw_input("\nFacebook email   : ")) 
 
       mail=open("/sdcard/mail.txt")
 
       mail=mail.read()
 
       
    try
   
        pasw
=open("/sdcard/pasw.txt")
 
       pasw=pasw.read()    
    except
:
 
       pasw=open("/sdcard/pasw.txt","w")
 
       pasw=pasw.write(raw_input("\nFacebook şifre   : ")) 
 
       pasw=open("/sdcard/pasw.txt")
 
       pasw=pasw.read()
else:
 
   try:
 
       mail=open("mail.txt")
 
       mail=mail.read()    
    except
   
        mail
=open("mail.txt","w")
 
       mail=mail.write(raw_input("\nFacebook email   : ")) 
 
       mail=open("mail.txt")
 
       mail=mail.read()
 
       
    try
   
        pasw
=open("pasw.txt")
 
       pasw=pasw.read()    
    except
:
 
       pasw=open("pasw.txt","w")
 
       pasw=pasw.write(raw_input("\nFacebook şifre   : ")) 
 
       pasw=open("pasw.txt")
 
       pasw=pasw.read()



try: 
   
    yaz
('\nFacebook yükleniyor...')
 
   op=br.open("https://facebook.com")
 
   username=mail
    password
=pasw
    yaz
'\n\nKullanici verileri isleniyor...')
 
   br.select_form(nr=0)
 
   br.form["email"]=username
    br
.form["pass"]=password
    br
.method="POST"
 
   br.submit()
 
   yaz"\n\nFacebook'a giriş yapılıyor...")
 
   text=br.open("https://facebook.com").read()
except:
 
   yaz('\nBir hata oluştu! Tekrar deneyin.\n')
 
   quit()

 
   
if(text.find("home_icon",0,len(text))!=-1):
 
   yaz'\n\nGiriş yapıldı.')
else:
 
   yaz'\n\nGiriş Yapılamadı! Lütfen Giriş bilgilerinizi kontrol ediniz\n')
 
   
    if platform
.platform().startswith("Linux"):
 
       try:
 
           os.remove("/sdcard/mail.txt")
 
           os.remove("/sdcard/pasw.txt")
 
           quit()
 
       except:
 
           pass
            quit
()
 
   else:
 
       try:
 
           os.remove("mail.txt")
 
           os.remove("pasw.txt")
 
           quit()
 
       except:
 
           pass
            quit
()
parcala() 

Burada "req= br.open(face+django+"faceden/?veri="+base64.b64encode(url)+","+base64.b64encode(str(aralik))).read()" bu işlemi thread ile çoğaltırsam sanırım hızı artacak.
Ara
Cevapla
#2
Not: Server amazon olduğu için açık kalınca ve internet harcayınca para kesiyor Smile o yüzden kapattım. Hata alabilirsiniz
Ara
Cevapla
#3
ne yapmak istediğini anlamadım, faceye yüklü bi dosyayı mı indireceksin normal bi dosyayı mı, bu dosyayı servere mi indireceksin yoksa kendi bilgisayarına mı ?
Ara
Cevapla
#4
normal internette olan bir dosyanın direk indirme linkini bu scripti çalıştırınca girecem, telefona veya bilgisayara indirecek.

Sistem şu şekilde açıklayım.

"https://developers.facebook.com/tools/debug/echo/?q=" Bu adresin sonuna yazacağın adresleri facebook ham html olarak gösteriyor.
Bende kendi serverime django kurdum facebooktan gelen link ve byte aralığını alıp base64 çevirip gösteriyor. Bende sırasıyla oradan alıp kendi pc veya telefonumda birleştiriyorum. Ama dediğim gibi byte aralığını sırasıyla yaptığı için biraz bekleme oluyor.

Serverdan alınan sonuçları çoğaltabilirsem hızı artar herhalde demi?
Ara
Cevapla
#5
http://qpython.club/showthread.php?tid=1...n=lastpost
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Python yardım lütfen vural2123 2 896 15-09-2021, Saat: 17:36
Son Yorum: vural2123
  YENİ Python veri çekme webscapring hakkında iLLeGaLTeam1 0 1,959 30-05-2021, Saat: 12:59
Son Yorum: iLLeGaLTeam1
  arduino ir kumanda ile pc sesi açma yardım. aras5757 4 3,340 06-12-2020, Saat: 16:35
Son Yorum: s.k
  Kodun içindeki m3u8 çekme yardım aras5757 3 2,619 23-02-2020, Saat: 05:17
Son Yorum: kocero64
  Socket Hakkında SD-16 9 4,571 04-10-2019, Saat: 06:54
Son Yorum: oktay811

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme