Untuk bisa membuat otomatis posting di wall/dinding facebook kita bisa menggunakan metode langsung dan tidak langsung, langsung itu menggunakan api dari facebook dan tidak langsung (otomasi) menggunakan python dengan library selenium.
Saat ini kita mencoba metode tidak langsung, dengan menggunakan python dan selenium dengan operating system windows (minimal windows7 service pack 1), pastikan python dan library selenium sudah terinstall di computer anda, python yang digunakan adalah python minimal versi 3.6 keatas. Jangan lupa pastikan browser chrome sudah terinstall juga di computer anda.
Kendala membuat otomasi posting di dinding facebook adalah kode dari id, class, name properties di random. Meski tidak semua tetapi hampir sebagian besar di random, sehingga jika tidak jeli script kita hanya berjalan hanya beberapa saat, karena properties yang dipakai namanya berubah.
Untuk mengatasi hal tersebut diatas perlu ada triks agar script yang kita gunakan dapat berjalan dengan baik meskipun properties dari componet html di random oleh facebook. Kita bisa menggunakan properties tag, karena properties ini jarang di random karena dia berfungsi sebagai informasi tambahan untuk component itu sendiri, meskipun berputar sedikit tetapi tujuan yang di kehendaki tercapai.
Tulis script awal dibawah ini..
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.action_chains import ActionChains
from datetime import datetime
PATH = 'chromedriver.exe'
option = Options()
option.add_argument("--disable-infobars")
option.add_argument("start-maximized")
option.add_argument("--disable-extensions")
# Pass the argument 1 to allow and 2 to block
option.add_experimental_option("prefs", {
"profile.default_content_setting_values.notifications": 2
})
driver = webdriver.Chrome(options=option, executable_path=PATH)
driver.maximize_window()
wait = WebDriverWait(drive, 10)
driver.get("https://www.facebook.com/")
def login(id,password):
email = driver.find_element_by_id("email")
email.send_keys(id)
Password = driver.find_element_by_id("pass")
Password.send_keys(password)
button = driver.find_element_by_xpath("//button[contains(text(),'Login')]").click()
pass
def post_content(post):
dt=wait.until(EC.presence_of_all_elements_located(( By.XPATH, '//span[contains(text(),"Apa yang Anda pikirkan,")]')))
tulisan=(dt[0].text)
inpt= dt[0].find_element_by_xpath("..").get_attribute('class')
dt=driver.find_element_by_xpath ('//div[@class="'+inpt+'"]')
dt.click()
try:
dt=wait.until(EC.presence_of_element_located(( By.XPATH, '//div[@aria-label="Tulis sesuatu..."]')))
except:
dt=wait.until(EC.presence_of_element_located(( By.XPATH, '//div[@aria-label="'+tulisan+'"]')))
pass
dt.send_keys(post+Keys.ENTER)
login("USER FACEBOOK","PASSWORD FACEBOOK")
time.sleep(1)
content = "I am a Bot Posting On Facebook" ## Demo Content
driver.get("https://www.facebook.com/me")
time.sleep(1)
post_content(content)
0 komentar:
Posting Komentar