您的位置:首页 > 编程语言 > Python开发

python 的cookie处理操作

2011-07-31 22:01 281 查看
使用已有的cookie访问网站

import cookielib, urllib2

ckjar = cookielib.MozillaCookieJar(os.path.join(’C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default’, ‘cookies.txt’))

req = urllib2.Request(url, postdata, header)

req.add_header(’User-Agent’, \

‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’)

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )

f = opener.open(req)

htm = f.read()

f.close()

访问网站获得cookie,并把获得的cookie保存在cookie文件中

import cookielib, urllib2
req = urllib2.Request(url, postdata, header)

req.add_header(’User-Agent’, \

‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’)
ckjar = cookielib.MozillaCookieJar(filename)

ckproc = urllib2.HTTPCookieProcessor(ckjar)
opener = urllib2.build_opener(ckproc)
f = opener.open(req)

htm = f.read()

f.close()
ckjar.save(ignore_discard=True, ignore_expires=True)

使用指定的参数生成cookie,并用这个cookie访问网站

import urllib.request as ur
import urllib.parse as up
#import http.cookiejar as cj
#coding:gbk

charset='utf8'

#组件信息
#cookiejar = cj.CookieJar()
#urlopener = ur.build_opener(ur.HTTPCookieProcessor(cookiejar))
urlopener = ur.build_opener(ur.HTTPCookieProcessor())

#jiayuan配置信息
name='Yatere'
uid='22017518'

#http头
headers={'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)'}
seachhead={'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)',
'Referer':'http://search.jiayuan.com/',
'Origin':'http://search.jiayuan.com'}

#用户登入data
values = {'password':'198398','name':'yin_kai@163.com'}

#搜索data
searchdata={
'sex':'f',
'work_location':'42',
'work_sublocation':'4201',
'min_age':'22',
'max_age':'26',
'min_height':'160',
'max_height':'180',
'education':'20',
'edu_more_than':'on',
'astro':'0',
'animal':'',
'bloodtype':'0',
'income':'0',
'house':'0',
'auto':'0',
'marriage':'1',
'children':'0',
'level':'0',
'industry':'0',
'company':'0',
'home_location':'42',
'home_sublocation':'4201',
'nation':'0',
'belief':'0',
'ques_love':'0',
'avatar':'on',
'save_name':''}

#post数据转换程序
def data(values):
data=up.urlencode(values).encode()
return data

#访问指定页面
def geturlcon(url,data=None,headers=headers):
request = ur.Request(url,data,headers)
url = urlopener.open(request)
page=url.read().decode('utf8','ignore')
return page

#检测是否登入成功
def checklogin(page):
if page.find(name)>0:
return True
elif page.find(uid)>0:
return True
else:
return False

#访问登陆页面(获得cookie)
url1='http://login.jiayuan.com/dologin.php'
geturlcon(url1,data(values),headers)

#登入后访问其他页面
url2='http://www.jiayuan.com/usercp/'
page=geturlcon(url2)
if checklogin(page):
print ('登入成功')
else:
print ('登入失败')

url3='http://profile.jiayuan.com/14214171'
page=geturlcon(url3)

if checklogin(page):
print (url3,'登入成功')
else:
print ('登入失败')

#查看搜索结果
url3='http://search.jiayuan.com/result.php?t=10&m=1'
page=geturlcon(url3,data(searchdata),seachhead)

if checklogin(page):
print (url3,'登入成功')
else:
print ('登入失败')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: