Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Facebook ve selenium ile yukleme yapma
#1
Facebook da gruba dosya yüklemek için selenium ile yaptığım basit bir kod. Facebook dilini ingilizce yapın, windows da chrome ile sıkıntısız 100 den fazla partı yükledi.

"pip install selenium" ile selenium modülünü yükledikten sonra, bu scriptin olduğu klasöre http://chromedriver.chromium.org/downloads buradaki chromedriver.exe dosyasını eklemeyi unutmayın.

PHP Kod:
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium
.webdriver.common.keys import Keys
from selenium
.webdriver.common.action_chains import ActionChains
import time
ossys

print(
"""
############################################################

#- Facebook Dosya Yukleme

#- windows-chrome icin

############################################################
"""
)

reload(sys)  
sys
.setdefaultencoding('utf8')
yer str(os.path.dirname(os.path.abspath(sys.argv[0])))+str(os.sep)
#Selenium Ayarlari, Ubuntu da kullanacaksaniz burayi mutlaka degistirin
chrome_options webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" 2#chrome da bildirim engellemek icin
chrome_options.add_experimental_option("prefs",prefs)
chrome_options.add_argument("--incognito"#gizli sekmede islem yapmak icin
driver =webdriver.Chrome(yer+"chromedriver.exe",chrome_options=chrome_options)
print 
driver.session_id
    

def giris
(username,password):
        driver.get("https://en-gb.facebook.com/")
        driver.find_element_by_id("email").click()
        driver.find_element_by_id("email").clear()
        time.sleep(1)
        driver.find_element_by_id("email").send_keys(username)
        driver.find_element_by_id("pass").click()
        driver.find_element_by_id("pass").clear()
        time.sleep(1)
        driver.find_element_by_id("pass").send_keys(password)
        try:
            driver.find_element_by_id("pass").send_keys(Keys.ENTER)
        except:
            driver.find_element_by_id("u_0_2").click()
        time.sleep(5)
def yukle(sira,gkod):
        driver.get("https://www.facebook.com/groups/"+str(gkod)+"/files/")
        for i in sira:
            #print i.split(os.sep)[-1]
            try:
                driver.find_element_by_link_text("Upload FileUpload File").click()
                time.sleep(2)
            except:
                driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Create Doc'])[1]/following::i[1]").click()
                time.sleep(2)
            sec=driver.find_element_by_name("file1").send_keys(i)
            time.sleep(2)
            try:
                driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Select a file on your computer (Max size 100 MB)'])[1]/following::button[1]").click()
                time.sleep(2)
            except:
                sec.send_keys(Keys.TAB)
                time.sleep(0.5)
                sec.send_keys(Keys.ENTER)
                        
            time
.sleep(int(os.path.getsize(i))/(1024**2)) #her 1mb yukleme icin 1sn bekleyecek            
            while True:
                tag=driver.find_element_by_xpath('//*[@id="group_files_'+str(gkod)+'"]/li[1]').text
                
if str(tag).find(i.split(os.sep)[-1]) == -1:
                    print "Dosya henuz yuklenmemis, biraz daha bekleyelim."
                    time.sleep(10)
                else:
                    os.remove(yer+i#yuklenen partlari silmek icin
                    break
            print str(i.split(os.sep)[-1])+" yuklendi."
        print "Tum partlar yuklendi."
partlar=raw_input("Yuklenecek dosyalarin oldugu dizin,\nubuntu icin '/root/film/'\nwindows icin 'c:\\user\\desktop\\film\\' \nseklinde girin:\n")            
username
=raw_input("kullanici adi:\n")
password=raw_input("Sifre:\n")
gkod=raw_input("Grubun web sayfasinda 'https://www.facebook.com/groups/<kod veya isim>/files/'  kod veya ismi lazim:\n")          
giris
(username,password)
#time.sleep(10)
sira=[]
for 
i in os.listdir(partlar):
    sira.append(partlar+i)
    
yukle
(sira,gkod
Ara
Cevapla
#2
umarim linux ubuntu da çalişir. birazdan deneme yaparim.face paketimiz bitti ama elbet bir süre sonra benzer paketler cüzi fiyata veya bir takim paketlerin yaninda hediye olarak vereceklerdir.
Ara
Cevapla
#3
Ubuntu icin selenium ve driver ayarlarını değiştirsen yeterli, sitedeki taglar zamanla veya tarayıcıya göre değişmediği sürece sıkıntı olmaz.
Ara
Cevapla
#4
Time sleep niye kullandın anlamadım, insanların bilgisayarı yavaşsa o süre zarfında işlem yapamazsa kod expcete düşmeyecek mi?
Ara
Cevapla
#5
@Ezio tam tersine, vps ramleri düşük olduğu için selenium tarayıcıda tagleri bulamayınca hata veriyor. Ben de tarayıcıda sitenin tam açılması için time.sleep koydum. Vps lerde ağır çalışması için yapmıştım. Eğer pc özellikleri iyi ise time.sllepleri kaldırabilirsin.
Mesela;
try:
driver.find_element_by_link_text("Upload FileUpload File").click()
time.sleep(2)
except:
driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Create Doc'])[1]/following::i[1]").click()
time.sleep(2)

Burada dosya yükleme penceresinin açılması için try kısımında click yaptıktan sonra 2 saniye pencerenin açılması için bekliyor sonra "sec=driver.find_element_by_name("file1").send_keys(i)" burada da listedeki dosyanın ismini yazdırıyor sonra devam ediyor.
Eğer time sleep koymazsak yükleme penceresinin açılmasını beklemeden hemen ismi göndermeye çalışacak, ama pencere henüz açılmadığı için hata verecek.
except kısmında ise dosya yükleme ekranını başka yolla açmak için koydum. İlki işe yaramazsa diye..
Ara
Cevapla
#6
turkcellde face paketi var mı hâla?
Ara
Cevapla
#7
(17-12-2018, Saat: 18:00)excel Nickli Kullanıcıdan Alıntı:  turkcellde face paketi var mı hâla?

yok diye biliyorum. ha saçma bir face paketi var fakat hem sınırlı ve kotasi düşük, hem de buna göre fiyatı pahali. şu an en uygunu turktelekomda aylik 9 tl sinirsiz face paketi diye biliyorum
Ara
Cevapla
#8
ttelekomdaki 1gb dan sonra hız sınırına giriyor diye biliyorum ben de. Vodafone'da var sosyal pass paketi, bu paket sınırsız ve kısıt yok. Ama haftalık 7 liraydı sanırım, bi ara kullanmıştım bir şeylerle uğraşırken.
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
  telegram bot yapma yardım html rapidleech aras5757 1 515 30-07-2019, Saat: 17:45
Son Yorum: gecemor
  Google Documents' e dosya yükleme oktay811 7 1,448 18-06-2019, Saat: 07:19
Son Yorum: ahmettepe
  Python 3.6 .exe yapma SD-16 11 3,169 21-02-2019, Saat: 02:00
Son Yorum: caminci
  Eski Facebook'a Url'den Video Yükleme gecemor 463 138,807 02-02-2019, Saat: 18:39
Son Yorum: gecemor
  facebook accessToken alma ahgonlum 14 3,671 20-11-2018, Saat: 22:35
Son Yorum: joes001

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme