import urllib.request
url = “http://www.baidu.com/”
response = urllib.request.urlopen(url)
print(response)
data = response.read()
print(data)
str_data = data.decode(“utf-8”)
print(str_data)
with open(“baidu.html01”,“w”,encoding=“utf-8”)as f:
f.write(str_data)
str_name = “baidu”
bytes_name = str_name.encode(“utf-8”)
print(bytes_name)
urlretrieve():
作用:就是将远程数据下载到本地
基本语法:
urllib.request.urlretrieve(url[,filename[,reporthook[,data]]])
参数说明:
url:外部的url或者本地的url
filename:设定保存到本地的路径,(如果未指定该参数,urllib会生成一个临时文件来保存数据)
reporthook:是一个回调函数,我们可以用这个回调函数来显示当前的下载进度
data:指post到服务器的数据。该方法返回一个包含两个元素的元祖(filename,headers)filename表示保存到本地的路径,
headers表示服务器响应头
例:
import urllib.request
url = “https://www.baidu.com/”
ret1 = urllib.request.urlretrieve(“https://www.baidu.com/",filename="E:/baidu.html”)
print(ret1)
(‘E:/baidu.html’, <http.client.HTTPMessage object at 0x0000006F25B90940>
getcode()
得到当前网页的状态码
geturl()
得到当前网页的网址
例:
import urllib.request
f = urllib.request.urlopen(“https://www.baidu.com”)
print(f.getcode()) #200
print(f.geturl()) #https://www.baidu.com
状态码:
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误