python中的web开发
###################################################################
url模块:
python3中是urllib模块,在python2中有四个模块:
urllib
urlparse
urllib2
robotparser
url用来写ftp和http等的客户端。
url的格式:
prot_sch://net_loc/path;params?query#frag
prot_sch:http、https、ftp
net_loc格式: user:passwd@host:port
path:斜杠限定文件活CGI应用程序的路径
params:可选参数
query:连接符&连接键值对
frag:拆分文档中的特殊锚
########################
urlparse模块的内建函数:
urlparse(url, scheme='',allow_fragments=True):
解析一个url,返回一个六个参数的元祖:
(scheme, netloc, path, params, query,fragment)
urlunparse(data):拼合一个六元祖成一个url。
urljoin(base, url, allow_fragments=True):
将base和url拼成一个完整的url。
urldefrag(url):移除url中的零部件。
urlsplit(url, scheme='',allow_fragments=True):
将一个url解析成一个五元祖:
(scheme, netloc, path, query, fragment)
urlunsplit(data):
将一个五元祖合并成一个url
########################
urllib模块的内建函数:
urlopen(url, data=None, proxies=None,context=None):
打开一个指定的url与web连接,返回文件类的对象。
urlopen返回的文件类对象的方法:
close():关闭url的连接
fileno():返回文件类对象的文件句柄
read([nbytes]):从文件类对象读出nbytes字节数据
readline():从文件类对象读出一行
readlines():从文件类对象读出所有行
info():获取文件类对象的MIME头文件
geturl():返回文件类对象打开的真正url
getcode():获取总字节数
next():读下一行
urlretrieve(url,filename=None,reporthook=None,data=None,context=None):
将url定位到html文件下载到你本地的硬盘,返回下载数据的本地文件名和对web服务器相应后返回的一系列MIME头文件组成的二元祖(filename,mime_hdrs)
quote(s, safe='/')
unquote(s)
quote_plus(s, safe='')
unquote_plus(s)
urlencode(query, doseq=0)
###################################################################
import requests一个http的客户端库。
response= requests.get(url, **kwargs)
response.content
response.text
response.json
response.encoding
response.header
response.url
response.status_code
response.raise_for_status()
head
put
post
delete
###################################################################
from bs4 import BeautifulSoup (第三方模块)
BeautifulSoup 是html的解析器.
#传入从url获取的text.
soup = BeautifulSoup(markup='',features=None, builder=None, parse_only=None, from_encoding=None, **kwargs)
soup = BeautifulSoup(response.text)
soup.title #打印title
#返回一个unicode字符串。
soup.get_text(self, separator=u'',strip=False, types=(<class 'bs4.element.NavigableString'>, <class'bs4.element.CData'>))
soup.prettify()
##############################################
twisted
异步网络编成框架。
##############################################
import paramiko (第三方)
一个SSH2的工具
##############################################
feedparser (第三方)
一个RSS/Atom解析工具