python网络编程学习笔记Web客户端访问.docx
文本预览下载声明
python网络编程学习笔记Web客户端访问
python网络编程学习笔记Web客户端访问
PAGE / NUMPAGES
python网络编程学习笔记Web客户端访问
最简单的爬虫
网络爬虫是一个自动提取网页的程序, 它为搜索引擎从万维网上下载网页, 是搜索引擎的重
要组成。 python 的 urllib\urllib2 等模块很容易实现这一功能,下面的例子实现的是对
baidu 首页的下载。具体代码如下:
import urllib2
page =( )
print ()
提交表单数据
用 GET 方法提交数据
提交表单的 GET 方法是把表单数据编码至 URL 。在给出请示的页面后,加上问号,接着是
表单的元素。如在百度中搜索 “马伊琍 ”得到
url
为
pn=100rn=20ie=utf-8usm=4rsv_page=1 。其中?后面为表单元素。
wd=%E9%A9%AC%E4%BC%8A%E7%90%8D 表示搜索的词是 “马伊琍 ”, pn 表示
从第 100 条信息所在页开始显示(感觉是这样,我试了几次,当写 100 时,从其所在页显
示,但如果写 10 ,就是从第 1 页显示), rn=20 表示每页显示 20 条, ie=utf-8 表示编
码格式, usm=4 没明白是什么意思, 换了 1 、2 、3 试了下,没发现什么变化, rsv_page=1
表示第几页。如果要下载以上页面比较简单的方法是直接用上面的网址进行提取。如代码:
import urllib2
keyword =( 马伊琍 )
page =( +keyword+ pn=100rn=20ie=utf-8usm=4rsv_page=1 )
print ()
(2) 用 post 方法提交
GET 方法中,数据是被加到
URL 上,这种方法数据量要求不大,如果需要交换大量数据的
时间, POST 方法是一个很好的方法。这里以前段时间写的博客《
python 模拟 163 登陆
获取邮件列表》为例,具体代码不在列出,详见地址:。
urllib,urllib2,httplib
,mechanize 的介绍
模块 ( 引自:
urllib 模块提供接口可以使我们像访问本地文件一样来读取
www
和 ftp 上的数据。模块中
最重要的两个函数分别是:
urlopen() 和 urlretrieve()
。
(url[, data[, proxies]]) :
本函数创建一个表示远程
url 的类文件对象, 然后像本地文件一样操作这个类文件对象来获
取远程数据。 参数 url
表示远程数据的路径,一般是网址;参数
data 表示以 post 方式提
交到 url 的数据;参数
proxies 用于设置代理。 urlopen 返回 一个类文件对象,返回的类
文件对象提供了如下方法:
read(), readline(), readlines(), fileno(), close()
:这些方法的使用方式与文件对象完
全一样 ;
info() :返回一个对象,表示远程服务器返回的头信息;
getcode() :返回 Http 状态码。如果是 http 请求, 200 表示请求成功完成 ;404 表示网址未找到;
geturl() :返回请求的 url ;
#! /usr/bin/env python
#coding=utf-8
import
urllib
content
=(
)
print
http header:
,()
print
http status:
,()
print
url:
,()
print
content:
for line
in
():
print
line
(url[, filename[, reporthook[, data]]]) :
urlretrieve 方法直接将远程数据下载到本地。 参数 filename 指定了保存到本地的路径 (如
果未指定该参数, urllib 会生成一个临时文件来保存数据);参数 reporthook 是一个 回
调函数,当连接上服务器、以及相应的数据 块传输完毕的时候会触发该回调(即每下载一
块就调用一次回调函数)。我们可以利用这个回调函 数来显示当前的下载进度,也可以用
于限速,下面的例子会展示。参数 data 指 post 到服务器的数据。该方法返回一个包含两
个元素的元组 (filename, headers) , filename 表示保存到本地的路径, header 表示服
务器的响应头。
#! /usr/bin/env python
# coding: utf-8
下载文件,并显示下载进度
import url
显示全部