- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
文档评论(0)