Hướng dẫn like facebook selenium python

Hướng dẫn like facebook selenium python

Bạn cảm thấy khá mệt mỏi và lười khi phải bão like cho một ai đó hay bạn chỉ muốn tạo một bộ công cụ nào đó để cho vui.
Hôm nay chúng ta sẽ cùng nhau tìm hiểu về một bộ framework tuyệt vời và bắt đầu sử dụng nó để thử đăng nhập vào Facebook

Hướng dẫn like facebook selenium python

Selenium là gì?

Theo wikipedia, Selenium hay Selen là là một nguyên tố hóa học với số nguyên tử 34 và ký hiệu hóa học Se. Nó là một phi kim, về mặt hóa học rất giống với lưu huỳnh và telua, và trong tự nhiên rất hiếm thấy ở dạng nguyên tố.

Hướng dẫn like facebook selenium python

Đùa một chút thôi, Selenium là một công cụ trình duyệt tự động được phát triển tại ThoughtWork ở Chicago năm 2004. Nó giúp bạn tạo ra một chương trình chạy tự động trên trình duyệt và chúng ta sẽ sử dụng công cụ này để tạo ra công cụ auto like này.

Hướng dẫn like facebook selenium python

Cài đặt ban đầu

Trong series bài hướng dẫn này mình sẽ sử dụng ngôn ngữ lập trình python3 và chạy trên hệ điều hành Ubuntu
Trước hết chúng ta cần cài đặt selenium về máy tính. Sử dụng lệnh bên dưới để cập nhật phiên bản mới nhất của selenium

pip3 install -U selenium

Hướng dẫn like facebook selenium python

Tiếp theo mình cần phải cài đặt một Webdriver. Chúng là những trình duyệt Web mà selenium sẽ sử dụng và trong series này mình sẽ sử dụng Webdriver Firefoxlink tại đây.

Hướng dẫn like facebook selenium python

Chọn geckodriver-v0.26.0-linux32.tar.gz nếu bạn muốn nó chạy trên nền 32bit hoặc geckodriver-v0.26.0-linux64.tar.gz nếu bạn muốn chạy trên nền 64bit.
Lưu ý :bạn có thể sẽ download phiên bản khác v0.26.0. Tuy nhiên do ở thời điểm hiện tại đây là phiên bản mới nhất nên mình để xuất nó. Nếu có phiên bản mới hơn bạn vẫn có thể download và sử dụng như bình thường
Sau khi đã download, giải nén file đó ra và lưu tại /usr/bin/ folder.

Hướng dẫn like facebook selenium python
Hướng dẫn like facebook selenium python

Cài đặt xong, bước tiếp theo chúng ta cần chạy thử xem chúng đã hoạt dộng được chưa. Trước hết chúng ta cần khai báo trong file python

from selenium import webdriver

driver = webdriver.Firefox()

Hướng dẫn like facebook selenium python

Sau khi lưu lại file trên và chạy nếu chương trình không báo lỗi và hiển thị Firefox tức là chúng ta đã cài đặt thành công.

Hướng dẫn like facebook selenium python

Đăng nhập Facebook bằng Selenium

Bây giờ chúng ta bắt đầu đăng nhập vào Facebook. Để có thể làm được điều này chúng ta cần thêm một hàm là getpass trong module getpass. Nó sẽ giúp chúng ta che đi mật khẩu khi đăng nhập ở terminal. Đây là một module có sẵn nên bạn không cần phải dùng pip để cài đặt nó.

Nhập email và mật khẩu

Trước hết chúng ta sẽ tạo ra một đối tượng là Account có 2 thuộc tính là là email và pwd để có thể dùng lại sau này.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

class Account(object):
def __init__(self, email , pwd):
self._email = email
self._pwd = pwd
def get_email(self):
return self._email
def set_email(self, email):
self._email = email
def get_password(self):
return self._pwd
def set_password(self, pwd):
self._pwd = pwd

Tiếp theo chúng ta sẽ tạo thêm một đối tượng mới là đối tượng đăng nhập Facebook
Chúng ta sẽ sử dụng một số method trong module của Selenium là

  • get() truy cập tới đường link trong get
  • find_element_by_css_selector()tìm phần tử đầu tiên theo thỏa mãn CSS Selector
  • send_keys() Nhập vào vị trí phần tử một chuỗi ký tự
  • find_element_by_id()Tìm phần tử đầu tiên có id cho sẵn
  • click() thực hiên event click của phần tử
  • find_elements_by_css_selector()Tìm tất cả các phần tử thỏa mãn CSS Selector

Trong Firefox có hai giai diện đăng nhập Facebook và mỗi một giao diện có cách nhấn đăng nhập khác nhau nên bạn có thể thấy được có 2 cách nhấn Đăng nhập trong method _submit()

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

class FBLogin(object):
def __init__(self, driver, account):
self._driver = driver
self._account = account
def _access_fb(self):
self._driver.get("https://facebook.com")
def _insert_email(self):
tbEmail = self._driver.find_element_by_css_selector("[name='email']")
tbEmail.send_keys(self._account.get_email())
def _insert_password(self):
tbPwd = self._driver.find_element_by_css_selector("[name='pass']")
tbPwd.send_keys(self._account.get_password())
def _submit(self):
try:
self._driver.find_element_by_id('loginbutton').click()
except:
self._driver.find_element_by_css_selector("[name='login']").click()
def login(self):
self._access_fb()
self._insert_email()
self._insert_password()
self._submit()
def is_success(self):
return (len(self._driver.find_elements_by_css_selector("[name='pass']")) == 0)

Thử đăng nhập nào

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

def login_to_facebook(driver):
print('LOGIN TO FACEBOOK!')
login = FBLogin(driver, get_account())
login.login()
return login.is_success()
def get_account():
email = str(input("Email> "))
pwd = getpass("Password for [%s]" %(email))
return Account(email, pwd)

Phần 2

Xin chào mọi người, mình là Hải. Hiện tại, mình là sinh viên của trường Đại học FPT. Mình viết blog để chia sẻ không chỉ về những kiến thức mà mình đã học trên trường mà mình sẽ còn viết về những trải nghiệm trong của số của chính mình. Rất mong mọi người sẽ ủng hộ các bài viết của mình View all posts by Lương Thế Hải

Post navigation