python获取cookie后怎么模拟登陆网站 python爬虫requests实现模拟登陆怎么获取cook...

\u8bf7\u6559Python\u6a21\u62df\u767b\u5f55\u7f51\u7ad9\uff0ccookie\u5904\u7406\u95ee\u9898

cookie_use = cookielib.CookieJar()handler = urllib2.HTTPCookieProcessor(cookie_use)opener = urllib2.build_opener(handler)urllib2.install_opener(opener)

\u4ee5\u524d\u6709\u8fc7\u7c7b\u4f3c\u7684\u95ee\u9898 \u53ef\u4ee5\u53c2\u8003\u4e0b\uff1a
http://blog.csdn.net/c406495762/article/details/69817490

运行平台:Windows

Python版本:Python3.x

IDE:Sublime text3

一、为什么要使用Cookie

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

http.cookiejar功能强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

它们的关系: CookieJar–派生–>FileCookieJar–派生–>MozillaCookieJar和LWPCookieJar

工作原理:创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。查看登录之后才能看到的信息。

同样,我们以实例进行讲解,爬取伯乐在线的面向对象的漂亮MM的邮箱联系方式。

二、实战

1.背景介绍

在伯乐在线有这么一个有趣的模块,面向对象,它说白了就是提供了一个程序员(媛)网上相亲的平台。

URL:

它的样子是这样的:

可以看到,这里有很多的相亲贴,随便点进去就会有网上相亲MM的详细信息,想获取MM的联系方式,需要积分,积分可以通过签到的方式获取。如果没有登陆账户,获取联系方式的地方是这个样子的:

如果登陆了账号,获取联系方式的地方是这个样子的:

想要爬取MM的联系邮箱,就需要用到我们本次讲到的知识,Cookie的使用。当然,首先你积分也得够。

在讲解之前,推荐一款抓包工具–Fiddler,可以在Google Chrome的Google商店下载这个插件,它的样子是这样的:

可以看到,通过这个插件,我们可以很容易找到Post的Form Data等信息,很方便,当然也可以用之前讲得浏览器审查元素的方式查看这些信息。

2.过程分析

在伯乐在线首页点击登陆的按钮,Fiddler的抓包内容如下:

从上图可以看出,真正请求的url是

Form Data的内容记住,这些是我们编程需要用到的。user_login是用户名,user_pass是用户密码。

在点击取得联系邮箱按钮的时候,Fiddler的抓包内容如下:

从上图可以看出,此刻真正请求的url是

同样Form Data中内容要记下来。postId是每个帖子的id。例如,打开一个相亲贴,它的URL是28/,那么它的这个postId就是4128。为了简化程序,这里就不讲解如何自动获取这个postId了,本实例直接指定postId。如果想要自动获取,可以使用beautifulsoup解析/返回的信息。beautifulsoup的使用。有机会的话,会在后面的爬虫笔记中进行讲解。

3.测试

1)将Cookie保存到变量中

首先,我们先利用CookieJar对象实现获取cookie的功能,存储到变量中,先来感受一下:

# -*- coding: UTF-8 -*-from urllib import requestfrom http import cookiejarif __name__ == '__main__':    #声明一个CookieJar对象实例来保存cookie
cookie = cookiejar.CookieJar()    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
handler=request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建opener
opener = request.build_opener(handler)    #此处的open方法打开网页
response = opener.open('httdu.com')    #打印cookie信息
for item in cookie:
print('Name = %s' % item.name)
print('Value = %s' % item.value)1234567891011121314151617

我们使用以上方法将cookie保存到变量中,然后打印出了cookie中的值,运行结果如下:

2)保存Cookie到文件

在上面的方法中,我们将cookie保存到了cookie这个变量中,如果我们想将cookie保存到文件中该怎么做呢?方便以后直接读取文件使用,这时,我们就要用到FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存,编写代码如下:

# -*- coding: UTF-8 -*-from urllib import requestfrom http import cookiejarif __name__ == '__main__':    #设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookiejar.MozillaCookieJar(filename)    #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
handler=request.HTTPCookieProcessor(cookie)    #通过CookieHandler创建opener
opener = request.build_opener(handler)    #此处的open方法打开网页
response = opener.open('h.com')    #保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)123456789101112131415161718

cookie.save的参数说明:



  • python鐖櫕鐧诲綍鐭ヤ箮鍚庢庢牱鐖彇鏁版嵁
    绛旓細鎵浠ユ兂瑕佺埇鍙栬繖绫荤綉绔欙紝蹇呴』鍏堟ā鎷熺櫥褰曘傛瘮杈冪畝鍗曠殑鏂瑰紡鏄埄鐢ㄨ繖涓綉绔欑殑 cookie銆俢ookie 鐩稿綋浜庢槸涓涓瘑鐮佺锛岄噷闈㈠偍瀛樹簡鐢ㄦ埛鍦ㄨ缃戠珯鐨勫熀鏈俊鎭傚湪涓娆$櫥褰涔嬪悗锛岀綉绔欎細璁颁綇浣犵殑淇℃伅锛屾妸瀹冩斁鍒癱ookie閲岋紝鏂逛究涓嬫鑷姩鐧诲綍銆傛墍浠ワ紝瑕佺埇鍙栬繖绫荤綉绔欑殑绛栫暐鏄細鍏堣繘琛屼竴娆℃墜鍔ㄧ櫥褰曪紝鑾峰彇cookie锛岀劧鍚庡啀娆$櫥褰曟椂...
  • Python閫氳繃urllib.request鑾峰彇銆愭湇鍔″櫒杩斿洖銆戠殑cookie
    绛旓細F12鏄湪娴忚鍣ㄩ噷鐪嬬殑鍚э紝涓や釜cookie搴斿綋涓涓槸鏈嶅姟鍣ㄥ彂缁欎綘鐨勶紝璁╀綘淇敼浣犳湰鍦扮殑锛屽彟涓涓槸浣犳湰鍦扮殑锛岃鍙戠粰鏈嶅姟鍣ㄧ殑 涓鑸兘鏄python鑷繁缁存姢cookie锛屼笉鐢ㄥ啓浠g爜鍘诲鐞 闄ら潪鎯虫墜鍔ㄤ慨鏀癸紝鎴戝啓杩囩殑python鑷鐞哻ookie鐨勪唬鐮 def __set_cookie(self): """ 璁剧疆Cookie :return: """ ...
  • python cookie闂?
    绛旓細s = requests.Session()data = {"login":"my_login", "password":"my_password"} url = "r = s.post(url, data=data) # 鏀规垚浣犵殑login浠g爜 涓嬮潰鍏朵粬椤甸潰涔熺敤s r = s.post...
  • python 鎬庢牱鍒犻櫎 cookie 涓殑鎸囧畾椤
    绛旓細鍖呭惈浜Cookie鍚杈撳嚭澶ц嚧濡備笅锛1 2 3 print "Content-Type: text/html"print "Set-Cookie: session=12345"print # 澶氬姞涓涓崲琛岃〃绀篐TTP Header閮ㄥ垎缁撴潫 浠g爜锛歴etcookie.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 !/usr/bin/env python import Cookie import datetime impor...
  • python寮傛涓璦iohttp鑾峰彇涓嶅埌姝g‘鐨凷et-cookies鍊?
    绛旓細python寮傛涓璦iohttp鑾峰彇涓嶅埌姝g‘鐨凷et-cookies鍊 杩欏嚑澶╁涔犱簡python鐨寮傛璇锋眰锛屾兂淇敼涔嬪墠鍐欑殑浠g爜鎻愰珮璇锋眰鏁堢巼锛屼絾閬囧埌涓涓寘鍚玸et-cookie杩斿洖鐨勮姹傛棤娉曡幏鍙栨纭殑cookie鍊 鍘熺▼搴忓叧閿唬鐮侊紙鍗曠嚎绋嬶級锛堥噸鐐圭湅print()杈撳嚭鍐呭锛夛細def enter_study(num, course): # 杩涘叆姣忎釜璇剧兢鐨勬瘡涓绋嬭褰曟瘡涓珷鑺...
  • python phantomjs鎬庝箞鑾峰彇cookie
    绛旓細鏈寮濮嬫槸浠ヤ负鐖櫕琚瘑鍒嚭鏉ユ墍浠ヨ闃绘嫤浜嗭紝浣嗘槸header鍚勭浼閮借瘯杩囦簡锛屼絾鏄緷鏃ц鎷︽埅锛屽悇绉嶈嫤鎭涔嬪悗锛屾棤鎰忎腑鍒锋柊椤甸潰鍗′簡涓涓嬶紝鎵嶄粠chrom涓棿鐪嬪埌浣跨敤娴忚鍣ㄦ甯歌闂篃浼氬嚭鐜颁竴涓521鐨勯敊璇 瀵癸紝涓鑸殑鐖櫕妗嗘灦鎴栬呮槸浣跨敤urllib閮戒細鍦ㄩ亣鍒5寮澶寸殑閿欒鐘舵佸悗鎶涘嚭閿欒锛屼絾鏄笉浼氳繑鍥炴姤鏂囦綋鎴栬呮墽琛屽悗缁殑call...
  • Python杩愯鎻愮ずCookie閿欒 璇ュ浣曡В鍐
    绛旓細鍙兘鏄湇鍔″櫒鏍规湰娌℃湁cookie鍟娿備綘鎷垮埆浜虹殑浠g爜鏉ョ敤锛岃嚦灏戣鐭ラ亾瀹冪殑浠g爜鏄拡瀵瑰摢浜涚綉绔欑殑銆傝窡韪繘鍘伙紝鎵惧埌WEB璇锋眰鐨勯偅涓娈碉紝鏄剧ず鍑烘潵鐪嬶紝搴旇鍙互鎵惧緱鍒板畠璁剧疆COOKIE鎴栬呮槸妫鏌et-cookie杩欎釜鍊肩殑浠g爜銆傛悳绱et-cookie鍚с
  • python 浠g爜閲屽浣曞垽鏂垚鍔熺櫥褰曡眴鐡
    绛旓細! py 3# _*_ coding: utf-8 _*_import osimport sqlite3import requestsfrom win32.win32crypt import CryptUnprotectData def getcookiefromchrome(host='.douban.com'):'''鏈濂借繕鏄粠娴忚鍣ㄨ嚜鍔ㄨ幏鍙栧綋鍓嶇櫥褰曞笎鍙风殑cookies锛岀劧鍚庡啀鎶撳彇鍐呭锛岃繖閲屾槸婕旂ず浠嶨oogle Chrome涓鑾峰彇cookies鐨勪緥瀛愩俬ost 鐧诲綍...
  • ...鐢≒ython缂栧啓鑴氭湰鑾峰彇鐩爣鏈嶅姟鍣ㄧ殑cookie!!!鏈汉鍦ㄥ仛娴嬭瘯
    绛旓細浜 cookie 鍦ㄥ鎴风涓 鏈嶅姟鍣ㄦ槸涓嶄細淇濈暀鐨 鍐典笖浣犺浣鑾峰彇鑷繁鐨刢ookie涔熸病鎰忎箟
  • python鐖櫕妯℃嫙鐧诲綍鏄粈涔堟剰鎬
    绛旓細headers = headers)getURL锛氳鐖彇鐨勭櫥闄嗗悗鐨勭綉椤碉紱login.cookies锛氱櫥闄嗘椂鑾峰彇鐨刢ookie淇℃伅锛屽瓨鍌ㄥ湪login涓傦紙5锛夎緭鍑哄唴瀹癸細print response.content浜斻佸叿浣撲唬鐮侊細[python] view plain copy -*- coding:utf-8 -*- author:Simon updatetime:2016骞3鏈17鏃 17:35:35 鍔熻兘锛氱埇铏箣妯℃嫙鐧诲綍锛寀rllib鍜宺...
  • 扩展阅读:python request cookie ... 苹果手机启用cookie功能 ... python模拟登录获取cookie ... paperpass免费入口 ... javascript&jquery ... python ie浏览器 cookie ... 安卓手机怎么获取cookie ... 手机夸克怎么获取cookie ... python获取登录网站的cookie ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网