當前位置:首頁 » 編程語言 » 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 瀏覽:943
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371