Python帮助:登录网站
我正试图用Python连接到一个网站,但我不知道怎么做 网站的HTML如下所示:Python帮助:登录网站,python,html,connection,Python,Html,Connection,我正试图用Python连接到一个网站,但我不知道怎么做 网站的HTML如下所示: <form action="connexion.php" method="post"> User<br /> <input name="login_user" type="text" /> <br /> Password<br /> <input name="pass_word" type="password" /> &
<form action="connexion.php" method="post">
User<br />
<input name="login_user" type="text" />
<br />
Password<br />
<input name="pass_word" type="password" />
<br />
<input value="Connexion" type="submit" />
</form>
但它只适用于朋宝网站。。。我想创建一个脚本谁将与此示例一起工作
谢谢您可以使用urllib模块打开任何网站并获取其HTML代码。但是,如果您想使用python从HTML表单接收数据,您应该学习一种web框架,如Django、webpy或Flask
编辑:您应该将“请求用户名”替换为“登录用户”,将“请求密码”替换为“密码” 我认为该模块正是您所需要的。它被设计成一个具有浏览器功能的人,允许你“点击”链接、提交表单、登录网站等等。我用过这个PyQt。该窗口有一个浏览器小部件,用于加载网页。之后,if填写所需字段(用户名和密码)并提交表单。 我认为这个解决方案比简单的表单提交更具优势,它使用Javascript在页面加载后对页面进行更改的登录页面
#!/usr/bin/env python
# -*- coding: utf-8 -*-
url = "http://192.168.173.66:8080"
username = "c58941376"
password = "7758"
import sys, signal
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
def JSEval(code):
return webpage.mainFrame().evaluateJavaScript(code)
def onLoadStarted():
print "Loading started: %s" % webpage.mainFrame().url().toString()
def onLoadFinished(result):
print "Loading finished: %s" % webpage.mainFrame().url().toString()
if not result:
#print "Request failed"
return
JSEval("_form = document.getElementsByName('authenticateForm')[0];")
if JSEval("_form.tagName").toString() != "FORM" :
print "Couldn't find needed form. Not a login page (wrong address or already logged in)."
return
JSEval("_form.username.value='%s';" % username \
+ "_form.password.value='%s';" % password \
+ "_form.submit();")
print "Login data sent"
app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
webpage = QWebPage()
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
webpage.connect(webpage, SIGNAL("loadStarted()"), onLoadStarted)
webpage.mainFrame().load(QUrl(url))
web = QWebView()
web.setPage(webpage)
web.show()
sys.exit(app.exec_())
什么意思?你是说使用python编写服务器端脚本?您是否试图使用python发布到
connexion.php
?我想访问我的成员数据,但为此,我必须输入我的登录数据。在这里,通过python。我只想通过python访问成员数据。使用论坛punbb,我可以做到,但它不适用于其他html。请编辑您的问题,并解释如何使用论坛punbb来澄清您的问题!若这个论坛是你们的,你们可以使用elixir并访问SQL数据库。然后你可以得到任何成员的数据!好的,您可以使用您的脚本,但将“req_用户名”和“req_密码”替换为HTML代码中的输入名称。或者你可以像Eli Bendersky说的那样使用mechanize。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
url = "http://192.168.173.66:8080"
username = "c58941376"
password = "7758"
import sys, signal
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
def JSEval(code):
return webpage.mainFrame().evaluateJavaScript(code)
def onLoadStarted():
print "Loading started: %s" % webpage.mainFrame().url().toString()
def onLoadFinished(result):
print "Loading finished: %s" % webpage.mainFrame().url().toString()
if not result:
#print "Request failed"
return
JSEval("_form = document.getElementsByName('authenticateForm')[0];")
if JSEval("_form.tagName").toString() != "FORM" :
print "Couldn't find needed form. Not a login page (wrong address or already logged in)."
return
JSEval("_form.username.value='%s';" % username \
+ "_form.password.value='%s';" % password \
+ "_form.submit();")
print "Login data sent"
app = QApplication(sys.argv)
signal.signal(signal.SIGINT, signal.SIG_DFL)
webpage = QWebPage()
webpage.connect(webpage, SIGNAL("loadFinished(bool)"), onLoadFinished)
webpage.connect(webpage, SIGNAL("loadStarted()"), onLoadStarted)
webpage.mainFrame().load(QUrl(url))
web = QWebView()
web.setPage(webpage)
web.show()
sys.exit(app.exec_())