urllib库与urlerror处理

首先导入urllib库

import urllib.ruquest   导入库

file = urllib.request.urlopen("http://www.baidu.com")打开并爬取一个网页

data = file.read()  读取全部内容

dataline = file.readline()  读取一行内容

print(data) 打印

 

 

读取内容常见的3种方式

   1.file.read()读取文件的全部内容,与readlines不同的是,read会把读取到的内容赋给一个字符串变量

   2 .file.readlines()读取文件的全部内容,与read不同的是,readlines会把读取到的内容赋给一个列表变量若要读取全部内容,建议使用这种方式

   3. File.readline()读取文件的一行内容

 

将爬取的信息以网页的形式保存到本地

fhandle = open("D:/python35/myweb/part4/1.html","wb")      通过open函数打开目录下的文件并以二进制的写入方式打开,打开后将句柄赋值给变量fhandle

fhandle.write(data)使用write方法写入对应的数据data

fhandle.close()然后关闭改文件

 

方法2  使用urllib.request里面的urlretrieve()函数直接将对应信息写入本地文件

格式为:“urllib.request.urlretrieve(url,file=本地文件地址)”。

然后清理下缓存urllib.request.urlcleanup

 

 

urllib的常见用法

1如果希望返回与当前环境有关的信息我们可以使用info()返回。调用格式为  “爬取的网页.info()”

2获取当前爬取网页的状态码,我们可以使用getcode(),若返回200为正确,返回其他则不正确,调用格式为:“爬取网页.getcode()”

3获取当去爬取URL的地址,可以使用geturl()来实现,调用格式为“爬去的网页.geturl()”

4url标准中只会允许一部分ascii字符,比如数字字幕部分字符等,当url中出现不符号标准的字符时需要进行url编码使用方法urllib.request.quote()

举例:对“http://www.sina.com.cn”进行编码

urllib.request.quote("http://www.sina.com.cn")

若要对url进行解码可以使用url.request.unquote()

 

posted @ 2017-08-09 17:52  独善其身412  阅读(322)  评论(0编辑  收藏  举报