python 爬虫入门学习4 urllib添加cookies验证

添加cookies

分为手动添加cookies 和 自动添加cookies

在登陆网页之后会在本地存储你的cookie信息,用于身份验证,就像是一把钥匙,我们可以手动添加cookie 和 自动添加cookie 当然自动添加cookie 是建立在手动的基础上,

手动添加cookie

# 手动添加cookie 比较简单, 因为cookie 是存储在头部信息中的 如果想要添加cookie信息,只需要在header 中增加一条key

header = {
	'User-agent': '321',
	'cookie': 'cookie'
}
url = "http://www.baidu.com"

# 创建Request对象

Res = urllib.request.Request(url, headers = header)

response = urllib.request.urlopen(Res)

data = response.read().decode()

自动添加cookie

因为添加cookie 信息是用于验证身份的, 自动存储cookie 信息我们需要的是登陆存储的cookie 我们首先要简单了解 post 请求:
  post 请求是指网页向后端发送信息所用到的请求方式,其中包含了后端开发人员定义的验证信息,比如username pwd 以及其他用于验证的信息

import urllib.request

login_url = 'https://passport.baidu.com/v2/?login'

header = {
	"User-agent": '123'
}
# 这就是post请求需要发送的信息, 仅用作示例
login_form_data = {
	'username': '123',
	'pwd': '123',
	'id_firm': '123'
}
from html import cookieJar
# 调用http方法中的cookieJar方法来自动存储cookie
cookie_Jar = cookiejar.CookieJar()

# 创建可以调用cookieJar 的处理器, 传递cookie_jar
cookie_handler = urllib.request.HTTPCookieProcessor(cookie_jar)

# 根据处理器生成相应的opener
opener = urllib.build_opener(cookie_handler)

# 带着参数向登陆页面发送post 请求 请求登陆
	# 创建请求对象

# 转义
import urllib.parse
parsed_data = urllib.parse.urlencode(login_form_data).encode('utf-8')
# !! 注意这里的data 并不接受字典的类型,我们需要对其进行转码让equest 接受这个参数,
login_request = urllib.request.Request(login_url, headers=header, data=parsed_data)

# 通过使用opener 来请求登录 登录页面返回一个cookie 信息, 
# 在下面这行代码中,如果成功之后会直接将cookie信息存储在cookie_jar 当中,
opener.open(login_request)

n_url = 'http://www.baidu.com'

n_request = urllib.request.Request(n_url, headers=header)
# 用我们创建好的含有cookie 信息的opener 来登陆页面
response = opener.open(n_request)

data= response.read().decode('utf-8')




已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页