python模拟表单提交(一)
短信预约 -IT技能 免费直播动态提醒
以后可能要用到这方面的东西,所以先实践一下,比如抢火车票。
第一步:本地搭建一个程序, 如下,代码很丑陋,别笑
主要就是一个用户名,一个密码框,和一个提交按钮
- <html>
- <head><title>Example</title></head>
- <body>
- <?php
- if (isset($_POST["username"])) {
- echo "you password is " . $_POST["pwd"];
- }
- else {
- echo "no!";
- }
- ?>
- <form name = "myform" action = "" method = "post">
- <label>用户名:</label><input type="text" name = "username"></input></br>
- <label>密码</label><input type="password" name = "pwd"></input></br>
- <input type="submit" name = "ok"></input>
- </form>
- </body>
- </html>
第二步: 使用工具分析浏览器提交的工具,可以用抓包工具。我使用的是火狐浏览器,本身就提供有这样的工具:
选择开发者工具,WEB开发者-》WEB控制台-》网络
第三步:写python代码,我也是谷歌找来的,如下
- # -*- coding: utf-8 -*-
- import re
- import urllib
- import urllib2
- import cookielib
-
-
- cj = cookielib.CookieJar()
- #我们post的表单数据
- post_data = urllib.urlencode({'username': 'hhq','pwd': '1000'})
- #登录路径
- path = 'http://localhost:81/'
- opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
- opener.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:20.0) Gecko/20100101 Firefox/20.0')]
- urllib2.install_opener(opener)
- req = urllib2.Request(path, post_data)
- conn = urllib2.urlopen(req)
-
- print urllib2.urlopen(req).read()
到这里,print 出来的就是提交表单后的网页。
代码有些地方我也不是很理解,找到两篇文章如下,有空慢慢学习:
http://www.cnblogs.com/yuxc/archive/2011/08/01/2123995.html
http://www.cnblogs.com/icgg/articles/1703392.html
今天就先到这里。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341