gpt4 book ai didi

python - 使用 python 请求登录 Facebook

转载 作者:IT老高 更新时间:2023-10-28 22:03:12 24 4
gpt4 key购买 nike

我正在尝试寻找一种无需使用 Python 浏览器即可自动登录 Facebook 的方法。我尝试了“请求”库。尝试了几种方法:

URL = 'http://m.facebook.com'
requests.get(URL, auth = ('email@domain.com', 'mypassword'))

...

form_data = {'email': 'email@domain.com',
'pass' : 'mypassword'
}
requests.post(URL, data = form_data)

...

requests.post(URL + '?email=email@domain.com&pass=mypassword')

最后一个方法填充页面上的“电子邮件”框,但“通过”框保持为空...

有人可以帮我解决这个问题吗?是否可以使用请求来模拟 FB 登录?

谢谢!

最佳答案

您需要发送一份完整的表格。找出 Facebook 期望的最简单方法是使用 Google Chrome's developer tools 之类的内容。监控您的网络请求。

为了让您的生活更轻松,我监控了我自己在 Facebook 上的登录信息,并在下面复制了它(显然是对私有(private)信息进行了编辑),并去掉了不重要的信息:

Request URL:https://m.facebook.com/login.php?refsrc=https%3A%2F%2Fm.facebook.com%2F&refid=8
Request Method:POST

Form Data:
lsd:AVqAE5Wf
charset_test:€,´,€,´,水,Д,Є
version:1
ajax:0
width:0
pxr:0
gps:0
m_ts:1392974963
li:cxwHUxatQiaLv1nZEYPp0aTB
email:...
pass:...
login:Log In

如您所见,表单包含很多字段。所有这些都需要提供才能让您登录。电子邮件和密码将由您的代码提供。其余字段的值实际上由 Facebook 为您提供的 HTML 设置。这意味着,要模拟浏览器登录,您需要执行以下步骤:

  1. 对登录页面执行 GET (https://m.facebook.com/)
  2. 使用 HTML 解析库(例如 BeautifulSoup)解析 HTML 并找到表单字段的默认值。
    • 默认值都在<input> #login_form 下面的 HTML 元素元素。您需要按名称查找它们(例如 charset_test ),然后取出它们的 value属性。
    • 如何做到这一点超出了这个答案的范围,所以我不打算深入讨论。
  3. 将表单字段的默认值与您的电子邮件和密码结合起来,如下所示:

    data = {
    'lsd': lsd,
    'charset_test': csettest,
    'version': version,
    'ajax': ajax,
    'width': width,
    'pxr': pxr,
    'gps': gps,
    'm_ts': mts,
    'li': li,
    }
    data['email'] = email
    data['pass'] = pass
    data['login'] = 'Log In'
  4. 使用请求 Session 发送您的登录信息:

    s = requests.Session()
    r = s.post(url, data=data)
    r.raise_for_status()
  5. 通过 Session 发送您 future 的所有 HTTP 流量.

如您所见,这是一种不平凡的做事方式。这是因为程序不会使用该网站登录:相反,您应该使用它们的 SDK或他们的web API而是。

关于python - 使用 python 请求登录 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com