python spider cookie

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import urllib
import urllib2
import cookielib

# 1、通过CookieJar()类构建一个cookieJar()对象,用来保存cookie的值
cookie = cookielib.CookieJar()

# 2、通过HTTPCookieProcessor()处理器类构建一个处理器对象,用来处理cookie
# 参数就是构建的CookieJar()对象
cookie_handler = urllib2.HTTPCookieProcessor(cookie)

# 3、构建一个自定义的opener
opener = urllib2.build_opener(cookie_handler)

# 4、通过自定义opener的addheaders的参数,可以添加HTTP报头参数
opener.addheaders = [(
  "User-Agent", 
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
)]

# 5、设置需要登录的账户密码
data = {
  "email":"[email protected]", 
  "password":"alarmchime"
}

# 6、通过urlencode()编码转换
data = urllib.urlencode(data)

# 7、第一次是post请求,发送登录需要的参数,获取服务器响应返回的cookie键值对参数
request = urllib2.Request(
  "http://www.renren.com/PLogin.do",
  data = data
)

# 8、发送第一次的post请求,生成登录后的cookie(如果登录成功的话)
response = opener.open(request)

# 9、第二次可以是get请求,这个请求将保存生成cookie一并发到web服务器,服务器会验证cookie通过
response_deng = opener.open("http://www.renren.com/410043129/profile")

# 10、获取登录后才能访问的页面信息
print response_deng.read()
  • 1、第一次发送POST请求,获取响应头Cookie值,保存到本地
  • 2、第二次后续都发送GET请求,直接读取本地保存的Cookie,拼接到请求头中

你可能感兴趣的:(python spider cookie)