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()