当前位置:首页 » 编程语言 » cookiejarpython

cookiejarpython

发布时间: 2023-05-30 13:38:36

‘壹’ 使用python怎么获取京东网站cookie进行登录

# -*- coding: utf-8 -*-
# !/usr/bin/python
import os
import urllib2
import urllib
import cookielib
import re
import sys
from bs4 import BeautifulSoup
‘‘‘
编码方式的设置,在中文使用时用到中文时的处理方式
‘‘‘
default_encoding = "utf-8"
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding("utf-8")
def getHtml(url,data={}):
if(data=={}):
req=urllib2.Request(url)
else:
req=urllib2.Request(url,urllib.urlencode(data))
html=urllib2.urlopen(req).read()
return html
try:
cookie = cookielib.CookieJar()
cookieProc = urllib2.HTTPCookieProcessor(cookie)
except:
raise
else:
opener = urllib2.build_opener(cookieProc)
opener.addheaders = [(‘User-Agent‘,‘Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11‘)]
urllib2.install_opener(opener)
auth_url=‘‘
#auth_url = ‘‘
home_url=‘‘
#home_url = ‘;
url = ""
login=getHtml(url)
#print login
loginSoup = BeautifulSoup(login,‘html.parser‘)
#查找登陆参数中的uuid
uuid = loginSoup.find_all("form")[0].find_all("input")[0][‘value‘]
print uuid
clrName=loginSoup.find_all("form")[0].find_all("input")[6][‘name‘]
clrValue=loginSoup.find_all("form")[0].find_all("input")[6][‘value‘]
‘‘‘这俩参数不是必须。。。。
eid=loginSoup.find_all("form")[0].find_all("input")[4][‘value‘]
fp=loginSoup.find_all("form")[0].find_all("input")[5][‘value‘]
‘‘‘
#下载验证码图片:
checkPicUrl = loginSoup.find_all("div",id="o-authcode")[0].find_all("img")[0][‘src2‘]
req = getHtml(checkPicUrl)
checkPic = open("checkPic.jpg","w")
checkPic.write(req)
checkPic.close()
#调用mac系统的预览(图像查看器)来打开图片文件
os.system(‘open /Applications/Preview.app/ checkPic.jpg‘)
checkCode = raw_input("请输入弹出图片中的验证码:")
#登录URL
url = ""
# 登陆用户名和密码
postData = {
‘loginname‘:‘你自己的账号‘,
‘nloginpwd‘:‘你自己的密码‘,
‘loginpwd‘:‘你自己的密码‘,
# ‘machineNet‘:‘‘,
# ‘machineCpu‘:‘‘,
# ‘machineDisk‘:‘‘,
str(clrName):str(clrValue),
‘uuid‘:uuid,
‘authcode‘: checkCode
}
passport=getHtml(url,postData)
print passport
# 初始化一个CookieJar来处理Cookie
‘‘‘
cookieJar=cookielib.CookieJar()
# 实例化一个全局opener
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
# 获取cookie
req=urllib2.Request(auth_url,post_data,headers)
result = opener.open(req)
# 访问主页 自动带着cookie信息
‘‘‘
result = opener.open(‘‘)
# 显示结果
#print result.read()
soup=BeautifulSoup(result,‘html.parser‘)
#昵称
nickName = soup.find_all("input", id="nickName")[0]["value"]
print "nickName:",
print nickName

‘贰’ python怎样可以携带cookie数据访问url

大概情铅没况如下:
#coding=utf-8
import urllib2
import urllib
import cookielib
import os
import threading
import time
class HB:def add_cookie_login(self,username):
self.user = username
cookiejar = cookielib.CookieJar()
urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
headers ={
"User-agent"槐段纳:"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
data={
"loginname":self.user,
"燃历password":'111111',
'remember':1}
postdata = urllib.urlencode(data)

‘叁’ python 如果往cookielib.CookieJar()里手动添加字段

defmake_cookie(name,value):
returncookielib.Cookie(
version=0,
name=name,
value=value,
port=None,
port_specified=False,
domain="xxxxx",
domain_specified=True,
domain_initial_dot=False,
path="/",
path_specified=True,
secure=False,
expires=None,
discard=False,
comment=None,
comment_url=None,
rest=None
)

jar=cookielib.CookieJar()
...
jar.set_cookie(make_cookie("name","value"))
...

‘肆’ python获取cookie后怎么模拟登陆网站

运行平台:Windows

Python版本:Python3.x

IDE:Sublime text3

一、为什么要使用Cookie

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。
使用Cookie和使用代理IP一样,也需要创建一个自己的opener。在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。

三、总结

获取成功!如果看过之前的笔记内容,我想这些代码应该很好理解吧。

‘伍’ python 爬虫,关于验证码的问题。输入验证码才能搜索。

#给你个例子参考验证码请求一次就变了
#!/usr/bin/python
#coding=utf-8
importrequests
importurllib
importurllib2,hashlib,md5

importcookielib

def_md5(password):
md5=hashlib.md5()
md5.update(str.encode(password))
psw=md5.hexdigest()
returnpsw
url='https://passport.liepin.com/captcha/randomcode?2hy270c2ji1'
req=urllib2.Request(url)
res_data=urllib2.urlopen(req)
res=res_data.read()
output_file=open('1.jpg','wb')
output_file.writelines(res)
output_file.close()
verifycode=res_data.headers['Set-Cookie'].split(';')[0]
verifycode=verifycode.replace('verifycode=','')
filename=res_data.headers['Content-disposition'].split(';')[1].strip()
exec(filename)

cookiejar=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
vidcode=raw_input(u"请输入验证码(在本路径1.jpg):")
data={'user_login':"[email protected]",
'isMd5':"1",
'user_pwd':_md5('love123456'),
'verifycode':vidcode,
'url':""}

url='https://passport.liepin.com/h/login.json'
data=urllib.urlencode(data)
headers={'Content-Type':'application/x-www-form-urlencoded','X-Requested-With':'XMLHttpRequest','Cookie':'verifycode={0};'.format(verifycode)}
request=urllib2.Request(url,data,headers)
response=opener.open(request)
print'-------result-------------'
printresponse.read()
print'-------headers-------------'
printresponse.headers
print'-------cookies-------------'
forcookieincookiejar:
printcookie

‘陆’ python测试接口时需要登录怎么解决

有些网页需要你登录之后才可以访问,你需要提供账户和密码。

只要在发送http请求时,带上含有正常登陆的cookie就可以了。

1.首先我们要先了解cookie的工作原理。

Cookie是由服务器端生成,发送给User-Agent(一般是浏唤皮览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

2.之后我们要获取和尘差到用户正常登录的cookie.

python提供了cookieJar的库,只要兄拍把cookieJar的实例作为参数传到urllib2的一个opener里面。

然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。

以人人网为例子。

Python代码

  • #encoding=utf-8

  • importurllib2

  • importurllib

  • importcookielib

  • defrenrenBrower(url,user,password):

  • #登陆页面,可以通过抓包工具分析获得,如fiddler,wireshark

  • login_page="hLogin.do"

  • try:

  • #获得一个cookieJar实例

  • cj=cookielib.CookieJar()

  • #cookieJar作为参数,获得一个opener的实例

  • opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

  • #伪装成一个正常的浏览器,避免有些web服务器拒绝访问。

  • opener.addheaders=[('User-agent','Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)')]

  • #生成Post数据,含有登陆用户名密码。

  • data=urllib.urlencode({"email":user,"password":password})

  • #以post的方法访问登陆页面,访问之后cookieJar会自定保存cookie

  • opener.open(login_page,data)

  • #以带cookie的方式访问页面

  • op=opener.open(url)

  • #读取页面源码

  • data=op.read()

  • returndata

  • exceptException,e:

  • printstr(e)

  • #访问某用户的个人主页,其实这已经实现了人人网的签到功能。

  • printrenrenBrower("httm/home","用户名","密码")

‘柒’ 浅析python中cookie写入和读取

通常情况下,一个请求对于cookie有不同的操作方式,如cookie写入和cookie读取2种最基本的方式友磨.

cookie的读取
url = self.get_response_url()+"&callback=jQuery21008240514814031887_1508666806688&_=1508666806689"
cookie = requests.get(url).cookies
return cookie
这里好缺斗的cookie的读取是通过url请求返回cookie得到cookiejar的值

cookie写入
cookie = requests.utils.dict_from_cookiejar(self.get_cookie())
op_json = OperetionJson()
op_json.write_data(cookie)
这里的cookie的写入是通过获扮段取后,在cookiejar的dict中获取到cookie,然后将cookie写入到json中,即可实现cookie写入的功能.

‘捌’ python使用http.cookiejar问题

说渣肆明粗芦load并不返回一个如凳轿cookie

cookie=cookie.load("F:\myCookie.txt",True,True)


改成

cookie.load("F:\myCookie.txt",True,True)


试试看

‘玖’ 关于用python写的登陆程序,怎么获取cookie值并返回出来

两种方式:
一、
接口,可以pip install requests模块,安装一个requests,对接口支持简单好用
例子,写一个getcookie()方法
import requests
def getcookie():
data={'username':username,'password':pwd}
session=requests.session()
loginurl="http://xxx.com/login"
#具体要接口登录后才可以获得cookies
result=session.post(loginurl,data=data)

cookies=requests.utils.dict_from_cookiejar(session.cookies)
return cookies

二、
UI自动化登录:可以easy_install -U selenium,安装selenium模块,支持UI自动化,模拟前端,用户名、密码登录后,这种方式也可以获得cookie

一个例子,登录csdn,并且获取cookie,用户名和密码我隐去了,可以参考。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium
import os,time
import sys
sys.path.append("..")
import web
import datetime

#默认得安装一个火狐浏览器
class webconn:
def __init__(self,drivertype):
self.drivertype=drivertype

def web_conn(self):
PASS=0
FAIL=0
get_cookie={}
t=datetime.datetime.now()
starttime=datetime.datetime.now()

driver = webdriver.Firefox()
try:

driver.get('https://passport.csdn.net/account/login')
time.sleep(2)
assert u'帐号登录' in driver.title

driver.find_element_by_id("username").send_keys(u"yoursername")
print "输入用户名"

driver.find_element_by_id("password").send_keys(u"yourpassword")
print "输入密码"

driver.find_element_by_class_name("logging").click()
time.sleep(2)

assert u'全球最大中文' in driver.title

driver.add_cookie({'name':'key-aaaaaa','value':'value-bbbb'})
for cookie in driver.get_cookies():
print "%s -> %s" %(cookie['name'],cookie['value'])
get_cookie[cookie['name'].encode("UTF-8")]=cookie['value'].encode("UTF-8")

print "cookie cookie cookie cookie cookie"

print get_cookie

PASS=PASS+1
except Exception,e:
print(str(Exception)+":"+str(e))
FAIL=FAIL+1
finally:
driver.close()
driver.quit()

endtime=datetime.datetime.now()
totaltime=endtime-starttime
usetime=str(endtime-starttime)
hour=usetime.split(':').pop(0)
minute=usetime.split(':').pop(1)
second=usetime.split(':').pop(2)
totaltime=float(hour)*60*60+float(minute)*60+float(second)
totaltime=str(totaltime)+"s"
return get_cookie

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:740
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371