gpt4 book ai didi

python - pycurl脚本无法登录网站

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:42 25 4
gpt4 key购买 nike

我目前正在尝试掌握 pycurl。我正在尝试登录网站。登录网站后,它应该重定向到主页。但是,在尝试此脚本时,它只会返回到登录页面。我可能做错了什么?

import pycurl
import urllib
import StringIO

pf = {'username' : 'user', 'password' : 'pass' }
fields = urllib.urlencode(pf)
pageContents = StringIO.StringIO()

p = pycurl.Curl()
p.setopt(pycurl.FOLLOWLOCATION, 1)
p.setopt(pycurl.COOKIEFILE, './cookie_test.txt')
p.setopt(pycurl.COOKIEJAR, './cookie_test.txt')
p.setopt(pycurl.POST, 1)
p.setopt(pycurl.POSTFIELDS, fields)
p.setopt(pycurl.WRITEFUNCTION, pageContents.write)
p.setopt(pycurl.URL, 'http://localhost')
p.perform()

pageContents.seek(0)
print pageContents.readlines()

编辑:正如 Peter 所指出的,URL 应该指向一个登录 URL,但是我试图让它工作的网站没有告诉我这是什么 URL。表单的操作仅指向主页 (/index.html )

最佳答案

在解决此问题时,我建议使用 FireBug 或 LiveHTTPHeaders 之类的浏览器插件(我建议使用 Firefox 插件,但其他浏览器也有类似的插件)。然后您可以向该站点发出请求,并查看正在将什么操作 (URL)、方法和表单参数传递到目标服务器。这可能有助于阐明问题的关键。

如果这没有帮助,您可以考虑使用其他工具进行机械化。我用过 ClientFormBeautifulSoup执行类似的操作。根据我在 pycURL 文档和上面的代码中阅读的内容,ClientForm 可能是更好用的工具。 ClientForm 将解析您的 HTML 页面,找到其中的表单(包括登录表单),并根据您提供给表单的答案为您构建适当的请求。您甚至可以将 ClientForm 与 pycURL 一起使用...但至少 ClientForm 会为您提供适当的 POST 操作,并构造所有适当的参数。

但是请注意,如果有 JavaScript 处理登录表单的任何必要部分,那么即使是 ClientForm 也无法帮助您。您将需要一些可以解释 JavaScript 的东西来有效地自动化登录。在那种情况下,我使用了 SeleniumRC控制浏览器(我让浏览器处理 JavaScript)。

关于python - pycurl脚本无法登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057276/

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