python - 使用 python 和 mechanize 登录 Instagram

标签 python instagram mechanize

我刚刚开始使用 python 和 Mechanize ,我需要一些帮助来理解为什么这不起作用。

import mechanize
username = "<username>"
password = "<password>"

ua = 'Mozilla/5.0 (X11; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0 (compatible;)'

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-Agent', ua), ('Accept', '*/*')]

br.open("https://www.instagram.com/accounts/login/")
br.select_form(nr=0)
br[username] = username
br[password] = password
result = br.submit().read()
f = open('output.html','w')
f.write(result)
f.close()

它抛出的错误是:
FormNotFoundError: 没有匹配 nr 0 的表单
我无法弄清楚正确的表单 ID 是什么。即使在尝试使用以下内容列出所有表单之后:
print("\n Printing all forms on page...\n")
for form in br.forms():
    print("Form Name:", form.name)
    print form
print("\n Done printing forms...\n")

表格列表为空。如果 Mechanize 无法看到表单本身,我如何找到表单 ID?

最佳答案

要选择第一个表单,您可以执行以下操作:

br.form = list(br.forms())[0]

然后,输入用户名和密码:
br.form["username"] = username
br.form["password"] = password

最后,提交:
req = br.submit()

编辑:刚刚注意到您说表单列表将返回空。这很可能是因为该站点正在使用 javascript。使用 Selenium 可能会更好。

祝你好运!

关于python - 使用 python 和 mechanize 登录 Instagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34489301/

相关文章:

python - Pandas 关于 axis = 0 和 axis = 1 的问题

node.js - 如何使用 Express JS 和 Jade 访问 instagram API?

ruby - 如何将数据保存到多维 Ruby 哈希,然后将哈希转换为单个 JSON 文件?

javascript - 在ruby中自动填写,提交和审查javascript表单的响应

python - 如何在 Python 中没有 API 的情况下从用户名 ID 获取 instagram 用户名?

python - 使用Python自动化使用在线文件转换器

python - 学习 Python 并尝试获取字符串的前两个字母和后两个字母

python - torch.argmax 如何为 4 维工作

python - 展开 Numpy "object"dtypes

ios - 如何将带有 URL Shema 的 UIImage 分享到 Instagram 应用程序?