get请求
- urllib.request.urlopen最简单的方式
url='https://www.baidu.com/'
response = urllib.request.urlopen(url)
buff = response.read()
#显示
html = buff.decode("utf8")
response.close()
print(html)
- 使用Request的方式
url='https://www.baidu.com/'
#创建Request对象
req=urllib.request.Request(url)
response =urllib.request.urlopen(req)
buff = response.read()
html = buff .decode("utf8")
response.close()
print(the_page)
- 自己创建build_opener
header=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36')]
创建opener对象
opener=urllib.request.build_opener()
opener.addheaders=header
设置opener对象作为urlopen()使用的全局opener
urllib.request.install_opener(opener)
response =urllib.request.urlopen('http://www.baidu.com/')
buff = response.read()
html = buff .decode("utf8")
response.close()
print(the_page)
post请求
cookie的使用
- 获取Cookie保存到变量
import urllib.request
import http.cookie
# 声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
# 利用urllib库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
# 通过handler来构建opener
opener = urllib.request.build_opener(handler)
# 此处的open方法同urllib2的urlopen方法,也可以传入request
urllib.request.install_opener(opener)
#使用opener或者urlretrieve方法来获取需要的网站cookie
urllib.request.urlretrieve('http://www.baidu.com/','baidu.html')
# data=urllib.request.urlopen('http://www.baidu.com/')
- 保存cookies到文件
import http.cookie
import urllib2
# 设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = http.cookie.MozillaCookieJar(filename)
# 利用urllib库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib.request.HTTPCookieProcessor(cookie)
# 通过handler来构建opener
opener = urllib.request.build_opener(handler)
# 创建一个请求,原理同urllib的urlopen
response = opener.open("http://www.baidu.com")
# 保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)
- 从文件中获取cookies并访问
import http.cookielib
import urllib.request
# 创建MozillaCookieJar实例对象
cookie = http.cookie.MozillaCookieJar()
# 从文件中读取cookie内容到变量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
# 创建请求的request
req = urllib.Request("http://www.baidu.com")
# 利用urllib的build_opener方法创建一个opener
opener = urllib.build_opener(urllib.request.HTTPCookieProcessor(cookie))
response = opener.open(req)
print (response.read())