📜  使用Python登录 Facebook

📅  最后修改于: 2022-05-13 01:55:01.943000             🧑  作者: Mango

使用Python登录 Facebook

在学习Python的同时, Python脚本编写是最有趣和最引人入胜的事情之一。自动化和控制浏览器就是其中之一。

在这篇特别的文章中,我们将了解如何使用Python登录 Facebook 帐户以及selenium的强大功能。

Selenium自动化和控制浏览器及其活动。我们可以在selenium的帮助下以我们的方式编写代码来控制浏览器任务。主要是为了测试目的而自动化 Web 应用程序,但当然不仅限于此。无聊的基于 Web 的管理任务也可以自动化。随着您了解更多,看到事情自动发生并一次又一次地节省时间做无用的任务是非常有趣的。

我们在这里使用selenium打开我们需要的站点(在本例中为 Facebook),并在那里检查电子邮件框、密码框和登录按钮中的元素以找到它们的 id。

  • 使用selenium模块提供的find_element_by_id()函数,我们可以找到需要的元素(用户名框、密码框、登录按钮)
  • 使用selenium模块提供的send_keys()函数,我们将数据发送到盒子中。
  1. 需要安装第三方模块
    Selenium 
    getpass
    Additional Requirement : geckodriver for firefox and 
                             chromedriver for chrome
    
  2. 导入必要的模块
    • Selenium :自动化浏览器
    • 时间:暂停脚本运行几秒钟,因为如果我们输入太快,浏览器会尝试检测自动化内容
  3. 将用户名和密码作为用户的输入
    使用input()函数并将提示消息作为参数传递。
  4. 打开浏览器和所需网站
    webdriver.Chrome()将打开 chrome 的新窗口。我们将它的对象保存在名为驱动程序的变量中。
    现在使用 get函数我们将打开 Facebook 网站。
  5. 用于发送数据和发送输入的查找元素
    在要查找其 id 的浏览器元素上使用检查元素工具。在这种情况下,我们将检查用户名框、密码框、登录按钮以找到他们的 ID。然后使用这个 id 结合selenium函数find_element_by_id()在网页中找到它并将其保存在变量中以备后用。然后通过使用send_keys()我们将在之前找到的元素之间发送数据。
  6. 关闭浏览器
    完成上述所有步骤后,我们必须退出会话,这将通过使用 driver.quit() 来实现。
    注意:这里的driver是您为 webdriver.Chrome() 选择的变量的名称。

完整代码:

from selenium import webdriver
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options 
  
usr=input('Enter Email Id:') 
pwd=input('Enter Password:') 
  
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.facebook.com/')
print ("Opened facebook")
sleep(1)
  
username_box = driver.find_element_by_id('email')
username_box.send_keys(usr)
print ("Email Id entered")
sleep(1)
  
password_box = driver.find_element_by_id('pass')
password_box.send_keys(pwd)
print ("Password entered")
  
login_box = driver.find_element_by_id('loginbutton')
login_box.click()
  
print ("Done")
input('Press anything to quit')
driver.quit()
print("Finished")

看看如此简洁的代码是如何为您自动化的。

奖金:
为了安全起见,我们也可以输入密码而不显示在屏幕上。为此,我们必须再包含一个名为getpass的模块。现在只需更改密码的输入语句,我们就可以输入密码而不显示在屏幕上。

from getpass import getpass
pwd = getpass('Enter Password:') 

Getpass 提示用户输入密码而不回显。基本上,它允许您输入密码而不在屏幕上显示密码。

同样,您还可以自动化许多其他事情,例如 twitter 登录、推文、Facebook 注销等等。

如有任何疑问,请在评论部分下方发布。如果您喜欢这篇文章并希望看到更多类似的东西,请在下面的评论部分告诉我。