简单的网络请求:
from urllib import request url = "http://www.baidu.com" rep=request.urlopen(url)
urlopen请求数据,返回给了变量rep
对返回数据的操作:
urlopen()返回的结果是类文件对象,也是可迭代的,下面列举出比较常用的方法
read()、readline()、readlines() :读取文件
rep = request.urlopen(url) rep.read() 【Squeezed text】
rep.readline()
b‘<!DOCTYPE html>\n‘ rep.readlines() 【Squeezed text】
info():返回头信息
print(rep.info()) Date: Sat, 27 Jul 2019 03:32:18 GMT Content-Type: text/html Transfer-Encoding: chunked Connection: Close Vary: Accept-Encoding Set-Cookie: BAIDUID=71F5315626EBFC522CD27C212E0BDC71:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com Set-Cookie: BIDUPSID=71F5315626EBFC522CD27C212E0BDC71; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com #太多了省略.......
getcode():返回http状态码
print(rep.getcode()) 200
geturl():返回url
print(rep.geturl()) http://www.baidu.com
urllib中内置了一个方法使保存网页数据更加方便
from urllib.request import urlretrieve url = "http://www.baidu.com" urlretrieve(url,r‘D:/baidu.html‘)
上面代码等同于
from urllib import request request.urlretrieve("http://www.baidu.com",r"D:/baidu.html") (‘D:/baidu.html‘, <http.client.HTTPMessage object at 0x03576A30>)
urlretrieve(url, filename=None, reporthook=None, data=None)
url: 文件url
filename: 保存到本地时,使用的文件(路径)名称
reporthook: 文件传输时的回调函数,常用于显示进度条
data: post提交到服务器的数据
该方法返回一个二元元组("本地文件路径",<http.client.HTTPMessage对象>)
原文地址:https://www.cnblogs.com/lcyzblog/p/11257286.html
时间: 2024-10-11 13:19:26