gpt4 book ai didi

python - Facebook Python 登录脚本不使用 API

转载 作者:行者123 更新时间:2023-11-28 22:58:49 24 4
gpt4 key购买 nike

好的,所以我不久前找到了一个使用 python 登录 facebook 的基本脚本。它没有用——但经过一些调整(主要是更新帖子字符串)后,它在很长一段时间内都运行良好。现在它又停止了——我怀疑是因为 facebook 对他们的网站做了一点改动。

我已经尝试进行进一步的调整,在 Firefox 中捕获登录并确保我尽可能多地模仿帖子值等。

我需要直接登录网站,因为我有一堆脚本可以收集可通过浏览器获取的数据,但不能通过 API 获取。

花了好几天时间试图解决这个问题,但我还是一片空白……我错过了什么?

import sys
import re
import urllib
import urllib2
import cookielib
import json

def main():
# Check the arguments
user = sys.argv[1]
passw = sys.argv[2]

# Initialize the needed modules
CHandler = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
browser = urllib2.build_opener(CHandler)

browser.addheaders = [('Referer', 'http://login.facebook.com'),
('Content-Type', 'application/x-www-form-urlencoded'),
('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)')]

urllib2.install_opener(browser)
res = browser.open('http://m.facebook.com/index.php')
pg=res.read()
mxt = re.search('name="li" value="(\w+)"', pg)
mxt2 = re.search('name="m_ts" value="(\w+)"', pg)
mxt3 = re.search('name="lsd" value="(\w+)"', pg)
mxt4 = re.search('name="locale" value="(\w+)"', pg)

li = mxt.group(1)
m_ts = mxt2.group(1)
lsd = mxt3.group(1)
locale = mxt4.group(1)
res.close()

# Initialize the POST data
data = urllib.urlencode({
'lsd' : lsd,
'charset_test' : urllib.unquote_plus('%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'),
'version' : '1',
'm_ts' : m_ts,
'li' : li,
'locale' : locale,
'signup_layout' : 'header_button',
'laststage' :'first',
'post_form_id' : pfi,
'email' : user,
'pass' : passw,
'login' : 'Log in'
})

url='https://login.facebook.com/login.php?login_attempt=1&non_com_login=&'+ data
res = urllib2.urlopen(url)
print ('%s' % url)

res.close()

# Get Access Token
res = browser.open('http://developers.facebook.com/docs/reference/api')
conft = res.read()

# For Debugging
fh = open('debug.html', 'w')
fh.write(conft)
fh.close

mat = re.search('access_token=(.*?)"', conft)
acct = mat.group(1)
print ('Using access token: %s' % acct)

最佳答案

作为记录,这里是上述问题的有效答案。

#!/usr/bin/python

import mechanize

browser = mechanize.Browser()
browser.set_handle_robots(False)
cookies = mechanize.CookieJar()

browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7')]
browser.open("http://m.facebook.com/")
browser.select_form(nr=0)

browser.form['email'] = 'YOUR_LOGIN'
browser.form['pass'] = 'YOUR_PASSWORD'
response = browser.submit()

关于python - Facebook Python 登录脚本不使用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483002/

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