1.urlparse模块

urlparse.urlparse()      将一个url转化为(prot_sch, net_loc, path, params, query, frag)的元组

urlparse.urlunparse()       将(prot_sch, net_loc, path, params, query, frag)拼接成一个url

urlparse.urljoin()           将url1的base部分与url2的path部分组装成新的url

例如:

  1. >>> import urlparse
  2. >>> urlparse.urlparse("http://www.python.com/doc/FAQ.html")
  3. ParseResult(scheme='http', netloc='www.python.com', path='/doc/FAQ.html', params='', query='', fragment='')

2.urllib模块

使用urllib.urlopen(urlstr, postQueryData)可以返回一个文件对象,用于下载文件

获取到文件对象后,可以使用下面的方法操作文件对象:

f.read([bytes])     从文件中读出所有或bytes个字节

f.readline()      从文件中读出一行

f.readlines()      将文件的每一行读出返回一个列表

f.close()      关闭文件对象

f.fileno()      返回文件的句柄

f.info()      返回文件的MIME头文件

f.geturl()    返回文件真正的url

使用urllib.urlretrieve(urlstr, localfile=None, downloadSta-tusHook=None)可以下载文件并返回(filename, minme_hdrs)的元组

使用urllib.quote()和urllib.quote_plus()可以将url进行编码

使用urllib.unquote()和urllib.unquote_plus()可以将url进行反编码

使用urllib.urlencode(paramDict)可以将参数字典拼接成url

3.urllib2模块

使用urllib2可以解决更复杂的url打开问题,典型的应用是有基本认证需求的web站点

  1. #! /usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3.  
  4. import urlparse
  5. import urllib2
  6.  
  7. USER = '
  8. PASSWORD = 'Chgg123456'
  9. URL = "http://erp.chinahanguang.com"
  10.  
  11. def handle_auth1(url):
  12. auth_handler = urllib2.HTTPBasicAuthHandler()
  13. auth_handler.add_password("Archives", urlparse.urlparse(url)[1], USER, PASSWORD)
  14.  
  15. open_handler = urllib2.build_opener(auth_handler)
  16. urllib2.install_opener(open_handler)
  17. return url
  18.  
  19. url = handle_auth1(URL)
  20. f = urllib2.urlopen(url)
  21. print f.readlines()
  22. f.close()

Python的web编程的更多相关文章

  1. Python 之Web编程

    一 .HTML是什么? htyper text markup language 即超文本标记语言 超文本:就是指页面内可以包含图片.链接.甚至音乐.程序等非文字元素 标记语言:标记(标签)构成的语言 ...

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

     Web页面解析 / Web page parsing 1 HTMLParser解析 下面介绍一种基本的Web页面HTML解析的方式,主要是利用Python自带的html.parser模块进行解析.其 ...

  3. Python的Web编程[1] -> Web服务器[0] -> Web 服务器与 CGI / WSGI

    Web服务器 / Web Server 对于Web来说,需要建立一个Web服务器,必须建立一个基本的服务器和一个处理程序, 基本服务器的主要作用是,在客户端和服务器端完成必要的HTTP交互, 处理程序 ...

  4. Python的Web编程[0] -> Web客户端[0] -> 统一资源定位符 URL

    统一资源定位符 / URL 目录 URL 构成 URL 解析 URL 处理 1 URL构成 统一资源定位符(Uniform Resource Locator) 是对可以从互联网上得到的资源的位置和访问 ...

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

    WebService技术 / WebService Technology 1 关于webservice / Constants WebService是一种跨编程语言和跨操作系统平台的远程调用技术. W ...

  6. python web编程-概念预热篇

    互联网正在引发一场革命??不喜欢看概念的跳过,注意这里仅仅是一些从python核心编程一书的摘抄 这正是最激动人心的一部分了,web编程 Web 客户端和服务器端交互使用的“语言”,Web 交互的标准 ...

  7. Python 四大主流 Web 编程框架

    Python 四大主流 Web 编程框架 目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实.但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架 ...

  8. 系列文章--Python Web编程

    我从网上找到了其他园友的文章,很不错,留着自己学习学习. Python Web编程(一)Python Web编程(二)Python Web编程(三)Python Web编程(四)Python Web编 ...

  9. python web编程-web客户端编程

    web应用也遵循客户服务器架构 浏览器就是一个基本的web客户端,她实现两个基本功能,一个是从web服务器下载文件,另一个是渲染文件 同浏览器具有类似功能以实现简单的web客户端的模块式urllib以 ...

随机推荐

  1. 【vue】饿了么项目的相关笔记链接

    http://www.mtons.com/content/1819.htm http://www.tuicool.com/articles/F7BnaiY https://segmentfault.c ...

  2. 微信硬件平台(一) 公众号 ESP8266 Arduino LED

    微信硬件平台 本文目的,使用微信公众号控制ESP8266的LED开和关.进一步使用微信当遥控器(避免写APP或者IOS或者小程序),控制一切设备.给两个关键的总教程参考. 官网教程  微信硬件平台 微 ...

  3. 3D打印社区

    http://mc.dfrobot.com.cn/forum.php?mod=forumdisplay&fid=100&filter=typeid&typeid=9

  4. 百度地图JSAPI浏览器定位

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的秘钥 ...

  5. SVM-笔记(1)

    1 目的 SVM推导是从讨论最优超平面开始的,即为了得到一个能够划分不同超平面的面,即公式1: \begin{equation}w^Tx+b=0 \tag{1} \end{equation} 这个公式 ...

  6. RabbitMQ详解(三)------RabbitMQ的五种队列

    上一篇博客我们介绍了RabbitMQ消息通信中的一些基本概念,这篇博客我们介绍 RabbitMQ 的五种工作模式,这也是实际使用RabbitMQ需要重点关注的. 这里是RabbitMQ 官网中的相关介 ...

  7. Unity热更新学习(一) —— AssetBundle 打包和加载

    理论不多说,网上,官方文档都有.  这里有一篇介绍很全面的文章:https://www.cnblogs.com/ybgame/p/3973177.html 示例和注意点记录一下,用到时以便查阅. 一. ...

  8. 面试 15:顺时针从外往里打印数字(剑指 Offer 第 20 题)

    面试 15:顺时针从外往里打印数字 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印每一个数字.例如输入: {{1,2,3}, {4,5,6}, {7,8,9}} 则依次打印数字为 1.2.3. ...

  9. linux if -d -e -f表达的意思

    文件表达式-e filename 如果 filename存在,则为真-d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真-L ...

  10. 容器互联(linking)

    容器互联(linking)是一种让多个容器中的应用进行快速交互的方式. 它会在源和接受容器中间创建连接关系,接受容器可以通过容器名快速访问到源容器而不用指出具体的IP地址.