使用python登录网站时,我尝试了很多示例,但是我在做什么错呢?

布拉姆

我知道这里有很多示例,这些示例解释了如何使用Python登录网站,但是过去3天我一直在尝试,但是我什么都没做。这可能是由于Python对我而言是全新的事实,所以请原谅我的无知。

最吸引我的方法是使用request,因为这似乎是最短的方法。

我在此网站上建立了一个测试帐户,因此如果您愿意,您可以测试自己的东西

import requests

# variables
login_url = 'http://www.helifreak.com/'
username = 'testsubject'
password = 'password123'
login_data = {'vb_login_username' : username, 'vb_login_password' : password}


# making headers to look like a web browser
hf_headers = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'}

# creation of the session and login
s = requests.Session()
login = s.post(login_url, data=login_data, headers=hf_headers)

# printing the output to check if the login worked
print login.content

似乎在此示例中,打印出的内容表明我尚未登录。

考虑到那里有很多例子可以帮助我,我问这个问题有点难过,但这确实让我发疯了,我根本不明白为什么它不起作用。

我唯一想到的是,我的login_data定义了输入的“名称”,而我已经看到几个人使用该输入的“ id”。虽然,我的页面似乎没有用于输入密码或用户名的'id',并且我在这里也可以使用'name'进行阅读。

结论:我很困惑。任何帮助将不胜感激。

谢谢你。

奥列格(Oleg Gryb)

在查看了您提供的HTML的源之后,我意识到应该发布到的URL是:

http://www.helifreak.com/login.php

您需要做的第二件事是弄清楚md5hash函数在做什么,然后在POST之前在Python程序中做同样的事情。

我刚刚找到了md5hash函数的位置。它在这里定义:http : //www.helifreak.com/clientscript/vbulletin_md5.js他们所做的是使用MD5算法对表单字段进行哈希处理,然后将哈希值分配给该字段的值。如果要成功登录,则需要在Python中执行相同的操作。

这是一个解决方案。它比我想象的要简单,但是您需要使用机械化(sudo pip install mechanize),因为如果使用“ requests”,则需要填写许多隐藏字段:

>>> import md5
>>> import mechanize
>>> br = mechanize.Browser()
>>> r=br.open("http://www.helifreak.com")
>>> for f in br.forms():
...     if (f.action == 'http://www.helifreak.com/login.php'):
...             ff=f
... 
>>> m=md5.new()
>>> m.update('password123')
>>> d=m.hexdigest()
>>> ff.set_all_readonly(False)
>>> ff.set_value(d,'vb_login_md5password')
>>> ff.set_value(d,'vb_login_md5password_utf')
>>> ff.set_value('testsubject','vb_login_username')
>>> br.form=ff
>>> r=br.submit()
>>> print r.read()

最后打印的响应指示登录成功。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试使用Ubuntu在iptables上打开端口8080时,我在做什么错?

来自分类Dev

badblocks已经花了很多年了-我在做什么错?

来自分类Dev

查询中的GROUP BY-我在做什么错呢?

来自分类Dev

当满足条件时循环没有中断,我在做什么错呢?

来自分类Dev

在Python中使用季节性分解时,我在做什么错?

来自分类Dev

尝试部分模拟void方法时收到NotAMockException-我在做什么错?

来自分类Dev

尝试在hlsl中分配值时,我在做什么错?

来自分类Dev

切换场景时我在做什么错?

来自分类Dev

建立创始交易时出错-我在做什么错?

来自分类Dev

如何使用此jQuery插件/设置我的jQuery插件时我在做什么错?

来自分类Dev

用python查找蠕虫,我在做什么错?

来自分类Dev

Gruntjs目标我在做什么错?

来自分类Dev

重量我在做什么错?

来自分类Dev

SQL Pivot(我在做什么错)

来自分类Dev

.htaccess我在做什么错?

来自分类Dev

Firestore-我在做什么错?

来自分类Dev

Perlin的声音-我在做什么错?

来自分类Dev

Gruntjs目标我在做什么错?

来自分类Dev

QWinTaskbarProgress我在做什么错?

来自分类Dev

TFS权限-我在做什么错?

来自分类Dev

Sed我在做什么错

来自分类Dev

grep我在做什么错?

来自分类Dev

打印余额,我在做什么错?

来自分类Dev

jQuery附加-我在做什么错?

来自分类Dev

XML模式-我在做什么错?

来自分类Dev

JavaScript-我在做什么错?

来自分类Dev

我试图用Java中的“ 0”替换Evens,我在做什么错呢?

来自分类Dev

我正在尝试解析此json我不知道我在做什么错

来自分类Dev

我正在尝试在图像中间对齐文本。我不确定我在做什么错

Related 相关文章

热门标签

归档