urllib2 在 python3.x 中被改为urllib.request
1、urllib2.request.urlopen()拿到的数据是response对象,该对象有几个方法:read() , readline() , readlines() , fileno() , close() :
info()
举例:
from urllib.request import urlopen
import urllib
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
url='http://www.baidu.com'
req=urllib.request.Request(url,headers=headers)
res=urlopen(req)
print(res.read().decode('utf-8'))
此处构造一个Request对象,然后使用urlopen拿回来的还是对象,这样符合python 的面向对象思维。
2、requests.get()
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,但是参考某博客说不建议使用,这里只做研究
返回一个HTTPresp
import requests
response = requests.get('http://www.baidu.com')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印
onse类型,该类有属性:text,content,code等。
保存文本和图片都可以使用方法
urllib.request.urlretrieve