python的web编程

python的web相关模块,有两种不同的类型,urlparseurllib,分别以不同的功能和兼容性来处理URL,前者主要包括urlparse()、urlunparse()和urljoin(),后者可以使用urlopen()或urlretrive()创建web客户端。urllib2模块是一个比urllib功能更加高级的模块。

web开发,无疑要用到统一资源定位器URL,URL格式如下:

prot_sch://net_loc/path:params?query#flag

prot_sch:网路协议或者下载规划。

net_loc:服务器位置,或许也有用户信息。

path:斜线/限定文件或者通用网关接口CGI应用程序的路径。

params:可选参数。

query:连接符&连接键值对。

flag:拆分文档中的特殊锚。

其中,net_loc可以进一步拆分成多个部件,如下:

user:[email protected]:port

user:登录名。

passwd:用户的密码。

host:web服务器运行的机器名或地址,是个必须字段。

port:端口号,默认80。

urlparse模块——

urlparse(urlstr,defProtSch=None,allowFrag=None):将URL字符串拆分成一个6元组,如果在urlstr中没有给定协议或者规划将使用defProtSch,参数allowFrag决定是否允许有URL零部件。

urlunparse(urltup):与urlparse()功能相反。

urljoin(baseurl,newurl,allowFrag=None):将URL的基部件baseurl和新部件newurl拼合成一个完整的URL。

urllib模块——

urlopen(urlstr,postQueryData=None):打开urlstr所指向的URL,如果没有给定协议或者下载规划,或者文件规划早已传入,urlopen()则会打开一个本地的文件。打开成功时,返回一个文件类型对象,支持的方法包括read([bytes])、readline()、readlines()、close()、fileno()、info()、geturl()等。

urlretrieve(urlstr,localfile=None,downloadStatusHook=None):除了像urlopen()一样从URL中读取内容,还可以方便地将urlstr定位到的整个HTML文件下载到本地的硬盘上,可以将下载后的数据存成一个本地文件或者一个临时文件,如果该文件已经被复制到本地或者已经是一个本地文件,后续的下载动作将不会发生,如果可能,downloadStatusHook这个函数将会在每块数据下载或传输完成后被调用。

quote(urldata,safe=’/’):获取URL数据,并将其编码,从而适用URL字符串,尤其是一些不能被打印的或者不被web服务器作为有效URL接收的特殊字符串必须被转换,quote_plus()功能类似,不同的是还可以将空格编码成加+号。

unquote()、unquote_plus():与quote*()功能相反。

urlencode(dict):接收字典的键-值对,并将其编译成CGI请求的URL字符串的一部分,不同的键-值对以符号&划分。

urllib2模块——

urllib2可以处理更复杂URL的打开问题,如登录认证等。

网络爬虫——

web编程的一个常见应用便是网络爬虫,这些程序基于不同的目的而在因特网上搜索和下载页面,例如,为搜索引擎建索引、脱机浏览、下载并保存历史记录或框架、web页面缓存等等。

cgi——

CGI,即Common Gateway Interface,通用网关接口,帮助web服务器处理客户端数据,它代表了在一个web服务器和能够处理用户表单、生成并返回动态HTML页的应用程序间的交互。不过由于CGI的局限性,现在许多典型的web应用产品已经不再使用CGI了。

cgi模块可以帮助我们建立CGI应用程序,首先需要安装一个web服务器,将其配置成可以处理python的CGI请求的模式,然后让web服务器访问CGI脚本。如果是一个简单的服务器,可以使用python自带的web服务器,命令如下:

$python -m CGIHTTPServer

如上命令将会在当前机器的当前目录下建立一个端口号为8000的web服务器,然后可以在启动这个服务的目录下建立一个Cgi-bin,将python的CGI脚本放到这个目录中或者是一些HTML文件直接放在启动这个服务的目录下,接着就可以在地址栏中输入这些地址类访问web站点了,如下:

http://localhost:8000/mypython.htm

http://localhost:8000/cgi-bin/pythons.py

建立一个基于HTTP的web服务,一个基本的服务器和一个处理器是必备的,服务器在客户端和服务器端完成必要的HTTP交互,处理器用来处理客户端的请求,并返回适当的文件,如静态的文本或者由CGI生成的动态文件,处理器的复杂性决定了web服务器的复杂程度。python标准库提供了三种不同的处理器,分别在对应的模块可以找到,如下:

BaseHTTPServer模块:提供基本的web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler处理器。

SimpleHTTPServer模块:包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。

CGIHTTPServer模块:包含处理POST请求和执行CGI的CGIHTTPRequestHandler类。

时间: 2024-10-22 04:17:55

python的web编程的相关文章

Python的Web编程[0] -> Web客户端[1] -> Web 页面解析

 Web页面解析 / Web page parsing 1 HTMLParser解析 下面介绍一种基本的Web页面HTML解析的方式,主要是利用Python自带的html.parser模块进行解析.其主要步骤为: 创建一个新的Parser类,继承HTMLParser类; 重载handler_starttag等方法,实现指定功能; 实例化新的Parser并将HTML文本feed给类实例. 完整代码 1 from html.parser import HTMLParser 2 3 # An HTML

Python之WEB编程入门

前面很多内容都是在介绍 Python 的知识点.这些知识点可以说涵盖了 Python 80% 的方面.在接着往下分享的话,那就是 Python 高阶的知识点.比如语言本身的自身能力(反射).描述器.元编程等内容了.再接着就是 WEB 相关的内容了. 接下来会花很多篇章来介绍 WEB 相关的知识点.然后再介绍如何从零开始实现一个 WEB 框架.内容还是比较多的,请有需要的同学多多关注. 这里从零开始写一个框架出来,目的是为了更好地使用现有的 WEB 框架,了解现有 WEB 框架是如何工作的,这才是

Python的Web编程[2] -> WebService技术[0] -> 利用 Python 调用 WebService 接口

WebService技术 / WebService Technology 1 关于webservice / Constants WebService是一种跨编程语言和跨操作系统平台的远程调用技术. WebService主要由以下三种技术构成,XML+XSD,SOAP和WSDL XML+XSD: WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么).XML是WebService平台中表示数据

Python Web编程系列

我从网上找到了其他园友的文章,很不错,留着自己学习学习. Python Web编程(一)Python Web编程(二)Python Web编程(三)Python Web编程(四)Python Web编程(五)Python Web编程(六)Python Web编程(七) Python Web编程(八) 出处:http://www.cnblogs.com/game-over/category/105911.html

python+web编程学习总结记录(一)

近来一个多星期一直在学习py的web编程,从零开始,短暂时间接受的很多知识都需要消化吸收,所以在这里把这个过程梳理一遍,尽量用自己的语言去描述这些知识点. 首先是web编程的必备知识:HTTP协议.超文本传输协议(HTTP),是一种通信协议,按照定义来直接去看容易一头雾水,但其实只需要了解:web服务器和客户端之间交流,必须要遵守统一的规矩,不然就跟你说汉语我说英文一样,互相不知对方在说什么.这个统一的规矩或者格式就是HTTP协议 而服务器和客户端之间的通信方式简而言之就是,客户端给服务器发了一

python web编程-概念预热篇

互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准协议是HTTP(超文本传输协议).HTTP协议是TCP/IP 协议的上层协议,这意味着HTTP 协议依靠TCP/IP 协议来进行低层的交流工作.它的职责不是路由或者传递消息(TCP/IP 协议处理这些),而是通过发送.接受HTTP 消息来处理客户端的请求. HTTP 协议属于无状态协议,它不跟踪从一

Python 四大主流 Web 编程框架

Python 四大主流 Web 编程框架 目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实.但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django.Tornado.Flask.Twisted. 网络框架及MVC架构 所谓网络框架是指这样的一组Python包,它能够使开发者专注于网站应用业务逻辑的开发,而无须处理网络应用底层的协议.线程.进程等方面.这样能大大提高开发者的工作效率

python web编程-web客户端编程

web应用也遵循客户服务器架构 浏览器就是一个基本的web客户端,她实现两个基本功能,一个是从web服务器下载文件,另一个是渲染文件 同浏览器具有类似功能以实现简单的web客户端的模块式urllib以及urllib2(可以打开需要登录的网页)等模块 另外还有一些负载的web客户端,它不仅下载web文件,还执行其它复杂的任务,一个典型的例子就是爬虫 python实现爬虫也有一些框架模块:如Scrapy 使用python创建一个简单web客户端 你要弄清楚浏览器只是web客户端的一种,而且功能有限,

20 Web 编程 - 《Python 核心编程》

?? 引言 ?? Python 的Web 应用:简单的Web 客户端 ?? urlparse 和 urllib 模块 ?? 高级的 Web 客户端 ?? 网络爬虫/蜘蛛/机器人 ?? CGI:帮助 Web 服务器处理客户端数据 ?? 创建 CGI 应用程序 ?? 在 CGI 中使用Unicode ?? 高级 CGI ?? 创建 Web 服务器 ?? 相关模块 20.1 介绍 Web 应用:客户端/服务器计算 图20-1 因特网上的Web 客户端和Web 服务器.在因特网上客户端向服务器端发送一个