gpt4 book ai didi

python - 使用 Python 无浏览器访问 LinkedIn

转载 作者:太空狗 更新时间:2023-10-29 20:29:37 25 4
gpt4 key购买 nike

我正在编写一个访问 linkedin 的命令行应用程序。我正在使用 python-linkedin API。

一切如我所料,但我对身份验证过程非常不满。目前,我需要:

  1. 启动我的应用程序并等待它打印身份验证 URL
  2. 使用我的浏览器转到该 URL
  3. 为应用程序祝福并等待它把我重定向到一个 URL
  4. 从 URL 中提取访问 token
  5. 将该访问 token 输入到我的应用程序中
  6. 使用 linkedin 做我需要做的事

我不喜欢手动执行第 2 步到第 5 步,所以我想将它们自动化。我当时想做的是:

  • 使用像 mechanize 这样的 headless 客户端访问上面第 1 步中的 URL
  • 自动刮屏送我祝福(可能需要输入用户名和密码——这些我都知道,所以没关系)
  • 等待重定向并获取重定向 URL
  • 从 URL 中提取 token
  • 利润!

提问时间:

  • 环顾四周,this guy right here on SO试图做类似的事情,但被告知这是不可能的。为什么?
  • 然后,this guy here does它在 Jython 和 HtmlUnit 中。直接使用 Python 和 Mechanize 应该是可能的,对吧?
  • 最后,有没有人看到直接使用 Python 和 mechanize(或任何其他 headless 浏览器替代方案)的解决方案?我不想重新发明轮子,但如有必要,我会编写代码。

编辑:

初始化 token 的代码(使用已接受答案的方法):

api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
result = api.request_token()
if not result:
print 'Initialization error:', api.get_error()
return

print 'Go to URL:', api.get_authorize_url()
print 'Enter verifier: ',
verifier = sys.stdin.readline().strip()
if not result:
print 'Initialization error:', api.get_error()
return

result = api.access_token(verifier=verifier)
if not result:
print 'Initialization error:', api.get_error()
return

fin = open('tokens.pickle', 'w')
for t in (api._request_token, api._request_token_secret,
api._access_token, api._access_token_secret ):
pickle.dump(t, fin)
fin.close()

print 'Initialization complete.'

使用代币的代码:

api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)

tokens = tokens_fname()
try:
fin = open(tokens)
api._request_token = pickle.load(fin)
api._request_token_secret = pickle.load(fin)
api._access_token = pickle.load(fin)
api._access_token_secret = pickle.load(fin)
except IOError, ioe:
print ioe
print 'Please run `python init_tokens.py\' first'
return

profiles = api.get_search({ 'name' : name })

最佳答案

由于您计划只对自己授权一次,然后调用 API 以获取您自己的信息,因此我只会手动检索您的访问 token ,而不必担心自动化。

除非您在授权屏幕上另行指定,否则领英在您授权给定应用程序时生成的用户访问 token 是永久性的。您需要做的就是使用您的应用程序生成授权屏幕,完成整个过程,成功后回显并存储您的用户访问 token ( token 和 secret )。一旦你有了它,你就可以将它们硬编码到文件、数据库等中,并在调用 API 时使用它们。

它是用 PHP 编写的,但是 this demo基本上这样做。只需修改 demo.php 脚本以根据需要回显您的 token 。

关于python - 使用 Python 无浏览器访问 LinkedIn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213638/

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