本文目录一览:
- 1、如何用python脚本提交JS的表单
- 2、python如何模拟含有文件上传的表单
- 3、如何用PYTHON的CGIHTTPSERVER模块模拟POST请求
- 4、如何在 Python 中模拟 post 表单来上传文件
- 5、python http requests 怎么实现模拟登录,提交表单
- 6、如何用python提交一个web表单
如何用python脚本提交JS的表单
如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 form 里面的 action 填写服务端的处理路由就可以了。或者用 a 指向服务器路由get querystring。前端方面不需要python啊。
前端的提交交互动作,都是由 javascript 处理就可以了
远程登录ssh之后,那个web页面可以通过url访问还是服务器上可以直接读取的文件?
如果是前者,就等于python爬虫了,使用 uillib urllib2访问 web页面的 url 得到响应,然后解析,再使用刚才两个标准模块里面的.大概事例代码:
import urllib, urllib2
res = urllib2.urlopen("")
html = res.read()
# 解析 html ,读取 你要提交的内容
# 提交到新的连接
# get
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("" % params)
# post
params = urllib.urlencode({'programe': 'python', 'age': 12})
f = urllib.urlopen("", params)
直接读取服务器上的web文件内容解析提交的内容,后面的过程也是一样。
另外,python 有个 requests 的库,封装得更好,使用方便
python如何模拟含有文件上传的表单
在机器上安装了 Python 的
setuptools,可以通过下面的命令来安装 poster:
easy_install poster
装完之后,就可以像用下面代码模拟上传文件表单了:
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
# 在 urllib2 上注册 http 流处理句柄
register_openers()
# 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码
# "image1" 是参数的名字,一般通过 HTML 中的 input 标签的 name 参数设置
# headers 包含必须的 Content-Type 和 Content-Length
# datagen 是一个生成器对象,返回编码过后的参数
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})
# 创建请求对象
request = urllib2.Request("", datagen, headers)
# 实际执行请求并取得返回
print urllib2.urlopen(request).read()
如何用PYTHON的CGIHTTPSERVER模块模拟POST请求
这次又要逼真一点点,可以弄POST请求啦。
在WEB根目录下新建cgi-bin目录(据说是规模要求),然后运行命令:
1
python -m CGIHTTPServer
CGI-BIN目录下,form.py处理POST请求的内容(简化到不行):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding: utf-8 -*-
import cgi
header = 'Content-Type: text/html\n\n'
html = 'h3接受处理表单数据\n/h3'
#打印返回的内容
#print header
#print html
# 接受表达提交的数据
form = cgi.FieldStorage()
#print '接收表达get的数据 :',form
print 'p /'
# 解析处理提交的数据
content = form['userName'].value
print content, '$$$$$$$$$$$$$'
formhtml = '''
%s
'''
print formhtml % ('登陆成功')
然后,就可以测试EXTJS中的提交表单更新HTML元素啦。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
!DOCTYPE html
html
head
titleExtJs/title
meta http-equiv="Content-Type" content="text/html; charset=utf-8"/
link rel="stylesheet" type="text/css" href="ExtJs/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css"
script type="text/javascript" src="ExtJs/ext-all.js"/script
script type="text/javascript" src="ExtJs/bootstrap.js"/script
script type="text/javascript" src="ExtJs/packages/ext-theme-crisp/build/ext-theme-crisp.js"/script
script type="text/javascript"
Ext.onReady(function(){
var loader = Ext.get("loginMsg").getLoader();
Ext.get('loginBtn').on('click', login);
function login(){
loader.load({
form: "loginForm",
url: '/cgi-bin/form.py'
});
}
});
/script
/head
body style="margin: 20px"
form id="loginForm"
用户名:input name="userName" type="text"
密码:input name="password" type="password"
input type="button" value="登陆" id="loginBtn"
/form
状态:span id="loginMsg"/span
/body
/html
如果现实是无极,那内存就是太极,CPU的作用只是力图将线性化的空间还原为立体化的空间。其间当然要涉及映射运算。
如何在 Python 中模拟 post 表单来上传文件
物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料
python;CMD命令行;windows操作系统
方法/步骤
1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。
2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。
脚本第一行一定要写上 #!usr/bin/python
表示该脚本文件是可执行python脚本
如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。
3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度
4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。
python http requests 怎么实现模拟登录,提交表单
以下实例是一个完整的代码,实现了从博客获取内容发布至百度,分别实践抓取博客内容、模拟登录、表单提交这几步;
#注意,以下程序是一个完全程序,如果只需要实现模拟登录,提交表单,删除抓取部分即可,相关的代码已经清楚标注,可以根据自己实际情况修改。
代码如下:
# -*- coding: utf-8 -*-
import re
import urllib
import urllib2
import cookielib
#第一步,获取博客标题和正文 ,“IP”可以改为实际地址;
url = "IP"
sock = urllib.urlopen(url)
html = sock.read()
sock.close()
content = re.findall('(?=blogstory").*(?=p class="right artical)', html, re.S)
content = re.findall('script.*.*/script(.*)', content[0], re.S)
title = re.findall('(?=title)(.*)-.* - CSDN.*(?=/title)', html, re.S)
#根据文章获取内容新建表单值
blog = {'spBlogTitle': title[0].decode('utf-8').encode('gbk'), #文章标题
'spBlogText': content[0].decode('utf-8').encode('gbk'),#文章内容
'ct': "1",
'cm': "1"}
del content
del title
#第二步,模拟登录百度;
cj = cookielib.CookieJar()
#登陆百度的用户名和密码
post_data = urllib.urlencode({'username': '[username]', 'password': '[password]', 'pwd': '1'})
#登录地址路径
path = ''
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Opera/9.23')]
urllib2.install_opener(opener)
req = urllib2.Request(path, post_data)
conn = urllib2.urlopen(req)
#获取百度登陆认证令牌
bd = urllib2.urlopen(urllib2.Request('[username]/creat/blog')).read()
bd = re.findall('(?=bdstoken\" value=\").*(?=ct)', bd, re.S)
blog['bdstoken'] = bd[0][:32]
#设置分类名
blog['spBlogCatName'] = 'php'
#第四步,比较表单,提交表单;req2 = urllib2.Request('[username]/commit', urllib.urlencode(blog))
#最后,查看表单提交后返回内容,检验;
print urllib2.urlopen(req2).read()
#注意:将[username]/[password]替换为自己真实用户名和密码
如何用python提交一个web表单
采用python模拟访问http资源就可以了。将表中的数据填充,然后按照http的post方式提交过去