Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python帮助:登录网站_Python_Html_Connection - Fatal编程技术网

Python帮助:登录网站

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" /> &

我正试图用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" />
  <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_())