首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从BaseHTTPServer解析Python HTML POST数据

从BaseHTTPServer解析Python HTML POST数据

BaseHTTPServer是Python的标准库中提供的一个HTTP服务器模块,它可以帮助我们快速地创建一个HTTP服务器来处理客户端的请求。在处理POST请求时,我们需要解析POST请求中的HTML数据。以下是一个简单的示例代码:

代码语言:python
复制
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import cgi

class MyHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        # 解析POST请求中的HTML数据
        form = cgi.FieldStorage(
            fp=self.rfile,
            headers=self.headers,
            environ={'REQUEST_METHOD': 'POST'}
        )

        # 获取表单中的数据
        data = form.getvalue('data')

        # 返回响应
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        self.wfile.write('You posted: ' + data)

def run(server_class=HTTPServer, handler_class=MyHandler, port=8080):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print 'Starting server on port %d...' % port
    httpd.serve_forever()

if __name__ == '__main__':
    run()

在这个示例中,我们使用了Python的标准库中的cgi模块来解析POST请求中的HTML数据。然后,我们可以从解析后的数据中获取表单中的数据,并根据需要进行处理。最后,我们返回一个响应,将获取到的数据返回给客户端。

需要注意的是,BaseHTTPServer模块仅适用于本地测试和开发,不建议在生产环境中使用。在生产环境中,建议使用更加稳定和可靠的HTTP服务器模块,例如Tornado或者Flask等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python解析html[SGMLPa

因为要用python做学校网络的认证程序,需要解析服务器传回的html,本以为会像javascript里操作DOM那样简单,结果发现并不是 这样。...其实python里面有xml.dom模块,但是这次却不能用,为啥呢?...因为服务器传回的htmlxml角度看不是良构的,没有闭合的标签、没有 被注释掉的javascript和css,xml.dom没法处理,这个时候要用sgmllib。...SGMLParser 将 HTML 分解成有用的片段, 比如开始标记和结束标记。一旦它成功地分解出某个数据为一个有用的片段,它会根据 所发现的数据,调用一个自身内部的方法。...SGMLParser类里面包含了很多内部方法,开始读取html后,遇到相应的数据就会调用其对应的方法,最重要的方法有三个: start_tagname(self, attrs) end_tagname(

1K30

Python 数据解析基础到高级技巧

数据解析结构化或非结构化数据源中提取有用信息的过程,通常在数据清洗、数据分析和可视化之前进行。本文将深入探讨Python数据解析中的应用,基础知识到高级技巧,为读者提供全面的指南。...解析HTML数据Beautiful Soup是一个用于解析HTML和XML文档的Python库。它能够网页中提取数据,非常适合网页抓取和数据采集任务。...数据爬虫和网页抓取数据爬虫是一种自动化程序,可以网站上抓取数据Python中有多个库,如Requests和Scrapy,可用于构建爬虫。...数据爬虫和网页抓取数据爬虫是一种自动化程序,可以网站上抓取数据Python中有多个库,如Requests和Scrapy,可用于构建爬虫。...自然语言处理(NLP) :使用Python解析文本数据,进行情感分析、词频统计等NLP任务,有助于文本中提取有用信息。这些实际案例展示了数据解析在各种应用领域中的重要性和多样性。

32642

Python应用02 Python服务器进化

**注意,在Python 3.x中,BaseHTTPServer, SimpleHTTPServer, CGIHTTPServer整合到http.server包,SocketServer改名为socketserver...支持POST 我首先增加该服务器的功能。这里增添了表格,以及处理表格提交数据的"POST"方法。如果你已经读过用socket写一个Python服务器,会发现这里只是增加很少的一点内容。...请求中提取数据,再显示在屏幕上。...为了使用CGI,我们需要使用BaseHTTPServer包中的HTTPServer类来构建服务器。Python服务器的改动很简单。...更进一步,我可以让CGI脚本执行数据库操作,比如将接收到的数据放入到数据库中,以及更丰富的程序操作。相关内容从略。 总结 我使用了Python标准库中的一些高级包简化了Python服务器。

89060

Golang框架Gin入门实战--(5)Get、Post以及动态路由转值、Get Post数据解析到结构体、Post Xml数据解析到结构体

Golang框架Gin入门实战–(5)Get、Post以及动态路由转值、Get Post数据解析到结构体、Post Xml数据解析到结构体 此篇文章内容基于上篇文章继续修改Golang框架Gin入门实战...演示 r.GET("/user", func(c *gin.Context) { c.HTML(200, "default/user.html", gin.H{}) }) // 获取表单post...过来的数据 r.POST("/doAddUser1", func(c *gin.Context) { username := c.PostForm("username") password :...Xml数据 r.POST("/xml", func(c *gin.Context) { article := &Article{} xmlSliceData, _ := c.GetRawData...() //获取c.Request.Body读取请求数据 fmt.Println(xmlSliceData) if err := xml.Unmarshal(xmlSliceData, &article

96910

pythonHTML网页解析BeautifulSoup学习笔记

1、在线网页 参考《python用BeautifulSoup库简单爬虫入门+案例(爬取妹子图)》中的载入内容: import requests from bs4 import BeautifulSoup...referer':"www.mmjpg.com" } all_url = 'http://www.mmjpg.com/' #'User-Agent':请求方式 #'referer':哪个链接跳转进来的...Soup = BeautifulSoup(start_html.text, 'lxml') #BeautifulSoup:解析页面 #lxml:解析器 #start_html.text...二、界面结构简述 主要参考:Python爬虫利器二之Beautiful Soup的用法 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为...的搜索方法相同,搜索文档搜索文档包含的内容 find_next_siblings() find_next_sibling() 这2个方法通过 .next_siblings 属性对当 tag 的所有后面解析的兄弟

3.1K60

Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC

在这里可以总结一下post 跟 get 提交的一些区别: get提交,提交的信息都显示在地址栏中;对于敏感数据不安全;由于地址栏存储体积有限而不能提交大容量数据;将信息封装到了请求消息的请求行 中,而post...为了使用CGI,我们需要使用 BaseHTTPServer 包中的 HTTPServer 类来构建服务器。...因此需要 修改一下index.html,将其中form元素指向的action改为cgi-bin/post.py。...(一)中我们需要自己监听端口,接收http 请求,解析 http 请求,发送http 响应(包括静态文件和访问 cgi),就好象实现了一个极简版的  apache/lighttpd/nginx; (二/...Model是用来传给View 的,这样View 在替换变量的时候,就可以Model 中取出相应的数据

9K00
领券