热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用Python实现Facebook账号登录功能

脸书使用 Python 登录原文:https://www.geeksforgeeks.org/facebook-login-us

脸书使用 Python 登录

原文:https://www.geeksforgeeks.org/facebook-login-using-python/

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

在这篇特别的文章中,我们将看到如何使用 Python 和 selenium 的强大功能登录脸书帐户。

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

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


  • 使用Selenium模块提供的 find_element_by_id() 功能,可以找到需要的元素(用户名框、密码框、登录按钮)

  • 使用Selenium模块提供的 send_keys() 功能,我们将数据发送到盒子中。


  • 需要安装第三方模块

    ```py
    Selenium
    getpass
    Additional Requirement : geckodriver for firefox and
    chromedriver for chrome

    ```


  • 导入必要的模块


    • Selenium:自动化浏览器

    • 时间:暂停脚本运行几秒钟,因为浏览器试图检测自动化的东西,如果我们输入太快



  • 以用户名和密码作为来自用户
    的输入,使用 input() 函数,以传递提示信息作为参数。

  • 打开浏览器和所需网站
    网络驱动。Chrome() 将开启 Chrome 新窗口。我们将把它的对象保存在名为 driver 的变量中。
    现在使用 get 功能我们将打开脸书网站。

  • 查找发送数据的元素并发送输入
    在您想要查找 id 的浏览器元素上使用检查元素工具。在这种情况下,我们将检查用户名框,密码框,登录按钮,以找到他们的 id。然后用这个 id 结合 selenium 函数 find_element_by_id() 跨网页查找,保存在变量中备用。然后通过使用 send_keys() 我们将跨先前找到的元素发送数据。

  • 关闭浏览器
    完成上述所有步骤后,我们必须退出会话,并使用 driver.quit()实现。
    注意:这里驱动是你为网络驱动选择的变量名称。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 会提示用户输入密码,而不会回显。基本上,它可以让你输入密码而不在屏幕上显示。

同样,你也可以自动完成许多其他的事情,比如推特登录、推特、脸书注销等等。

如有疑问,请在下方评论区留言。如果你喜欢这篇文章,想看更多类似的东西,请在下面的评论区告诉我。

本文由乌蒙阿胡佳供稿。如果你喜欢 GeeksforGeeks 并想投稿,你也可以使用contribute.geeksforgeeks.org写一篇文章或者把你的文章邮寄到 contribute@geeksforgeeks.org。看到你的文章出现在极客博客主页上,帮助其他极客。

如果你发现任何不正确的地方,或者你想分享更多关于上面讨论的话题的信息,请写评论。


推荐阅读
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • 使用PyQt5与OpenCV实现电脑摄像头的图像捕捉功能
    本文介绍了如何使用Python中的PyQt5和OpenCV库来实现电脑摄像头的图像捕捉功能。通过结合这两个强大的工具,用户可以轻松地打开摄像头并进行实时图像采集和处理。代码示例展示了如何初始化摄像头、捕获图像并将其显示在PyQt5的图形界面中。此外,还提供了详细的步骤说明和代码注释,帮助开发者快速上手并实现相关功能。 ... [详细]
  • Python 并发编程进阶:从初学者到高手的进程与模块开发指南
    Python 并发编程进阶:从初学者到高手的进程与模块开发指南 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 深入解析Java中HashCode的功能与应用
    本文深入探讨了Java中HashCode的功能与应用。在Java中,HashCode主要用于提高哈希表(如HashMap、HashSet)的性能,通过快速定位对象存储位置,减少碰撞概率。文章详细解析了HashCode的生成机制及其在集合框架中的作用,帮助开发者更好地理解和优化代码。此外,还介绍了如何自定义HashCode方法以满足特定需求,并讨论了常见的实现误区和最佳实践。 ... [详细]
  • 从 Java 过渡到 Ruby,不仅是一次编程语言的转换,更是一段技术进阶的旅程。本文将深入探讨两种语言在语法、生态系统和开发模式上的差异,帮助开发者顺利实现转型,并在新的环境中高效地编写高质量代码。 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 深入解析 Spring MVC 的核心原理与应用实践
    本文将详细探讨Spring MVC的核心原理及其实际应用,首先从配置web.xml文件入手,解析其在初始化过程中的关键作用,接着深入分析请求处理流程,包括控制器、视图解析器等组件的工作机制,并结合具体案例,展示如何高效利用Spring MVC进行开发,为读者提供全面的技术指导。 ... [详细]
  • 根据不同环境需求,利用 Vue CLI 的 `npm run build` 命令对项目进行定制化打包,如测试、预发布和生产环境。通过配置 `process.env` 变量,实现不同环境下接口和服务的动态切换,确保应用在各阶段都能高效运行和调试。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
    在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
  • 在Android开发中,通过调用系统内置的音频和视频播放功能,可以实现高效、便捷的多媒体处理。本文将详细介绍如何利用Android系统的媒体播放器组件,实现对音频和视频文件的播放控制,包括基本的播放、暂停、停止等操作,以及如何处理播放过程中的各种事件,确保应用的稳定性和用户体验。 ... [详细]
  • 在Java应用中实现只读模式的切换方法与技巧 ... [详细]
author-avatar
cyweinyE
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有