Python爬虫之cookie的获取、保存和使用【新手必学】

前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:huhanghao

Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。另外如果你刚学不久。对这方面还不熟,建议先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,多跟里面的人交流,比自己摸索效率更高哦!

在python中它为我们提供了cookiejar模块,它位于http包中,用于对Cookie的支持。通过它我们能捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

## cookie的获取

# -*- coding: UTF-8 -*-
from urllib import request
from http import cookiejar
?
if __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(‘http://www.baidu.com‘)
   #打印cookie信息
   for item in cookie:
       print(‘Name = %s‘ % item.name)
       print(‘Value = %s‘ % item.value)
?
cookie的文件保存
# -*- coding: UTF-8 -*-
from urllib import request
from http import cookiejar
?
if __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(‘http://www.baidu.com‘)
   #保存cookie到文件
   cookie.save(ignore_discard=True, ignore_expires=True)
?

加载保存的cookie,并进行网页访问
# -*- coding: UTF-8 -*-
from urllib import request
from http import cookiejar
?
if __name__ == ‘__main__‘:
   #设置保存cookie的文件的文件名,相对路径,也就是同级目录下
   filename = ‘cookie.txt‘
   #创建MozillaCookieJar实例对象
   cookie = cookiejar.MozillaCookieJar()
   #从文件中读取cookie内容到变量
   cookie.load(filename, ignore_discard=True, ignore_expires=True)
   #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
   handler=request.HTTPCookieProcessor(cookie)
   #通过CookieHandler创建opener
   opener = request.build_opener(handler)
   #此用opener的open方法打开网页
   response = opener.open(‘http://www.baidu.com‘)
   #打印信息
   print(response.read().decode(‘utf-8‘))
这里对cookie的使用类似于,之前我们用到的对代理的使用。

加载cookie,实现网站的登录
# -*- coding: UTF-8 -*-
from urllib import request
from urllib import error
from urllib import parse
from http import cookiejar
?
if __name__ == ‘__main__‘:
   #登陆地址
   login_url = ‘http://www.jobbole.com/wp-admin/admin-ajax.php‘    
   #User-Agent信息                  
   user_agent = r‘Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36‘
   #Headers信息
   head = {‘User-Agnet‘: user_agent, ‘Connection‘: ‘keep-alive‘}
   #登陆Form_Data信息
   Login_Data = {}
   Login_Data[‘action‘] = ‘user_login‘
   Login_Data[‘redirect_url‘] = ‘http://www.jobbole.com/‘
   Login_Data[‘remember_me‘] = ‘0‘         #是否一个月内自动登陆
   Login_Data[‘user_login‘] = ‘********‘       #改成你自己的用户名
   Login_Data[‘user_pass‘] = ‘********‘        #改成你自己的密码
   #使用urlencode方法转换标准格式
   logingpostdata = parse.urlencode(Login_Data).encode(‘utf-8‘)
   #声明一个CookieJar对象实例来保存cookie
   cookie = cookiejar.CookieJar()
   #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler
   cookie_support = request.HTTPCookieProcessor(cookie)
   #通过CookieHandler创建opener
   opener = request.build_opener(cookie_support)
   #创建Request对象
   req1 = request.Request(url=login_url, data=logingpostdata, headers=head)
?
   #面向对象地址
   date_url = ‘http://date.jobbole.com/wp-admin/admin-ajax.php‘
   #面向对象
   Date_Data = {}
   Date_Data[‘action‘] = ‘get_date_contact‘
   Date_Data[‘postId‘] = ‘4128‘
   #使用urlencode方法转换标准格式
   datepostdata = parse.urlencode(Date_Data).encode(‘utf-8‘)
   req2 = request.Request(url=date_url, data=datepostdata, headers=head)
   try:
       #使用自己创建的opener的open方法
       response1 = opener.open(req1)
       response2 = opener.open(req2)
       html = response2.read().decode(‘utf-8‘)
       index = html.find(‘jb_contact_email‘)
       #打印查询结果
       print(‘联系邮箱:%s‘ % html[index+19:-2])
?
   except error.URLError as e:
       if hasattr(e, ‘code‘):
           print("HTTPError:%d" % e.code)
       elif hasattr(e, ‘reason‘):
           print("URLError:%s" % e.reason)
?以上就是本期讲的内容,另外如果你对这方面还不熟,刚学不久,建议先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,多跟里面的人交流,比自己摸索效率更高哦!

原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12042083.html

时间: 2024-10-29 10:46:15

Python爬虫之cookie的获取、保存和使用【新手必学】的相关文章

Python实现一个桌面版的翻译工具【新手必学】

Python 用了好长一段时间了,起初是基于对爬虫的兴趣而接触到的.随着不断的深入,慢慢的转了其它语言,毕竟工作机会真的太少了.很多技能长时间不去用,就会出现遗忘,也就有了整理一下,供初学者学习和讨论.相对于其它语言,你可以用很少的代码,便能实现一个完整的功能. ps:另外很多人在学习Python的过程中,往往因为遇问题解决不了从而导致自己放弃,为此我建了个Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题有老司机解决

Python爬虫入门案例:获取百词斩已学单词列表

百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息,同时学习Python爬虫基础. 首先来到百词斩网站:http://www.baicizhan.com/login 这个网站是需要登录的,不过还好没验证码,我们可以先看下在登录过程中浏览器POST了哪些数据.打开浏览器开发工具(F12),以Chrome浏览器为例,记录登录过程中浏览器的Network情况: 我

Python实战:Python爬虫学习教程,获取电影排行榜

Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习Python这门语言. 本文是在前一部分Python基础之上程序员带你十天快速入门Python,玩转电脑软件开发(四),再次进行的Python爬虫实战课程. 正则表达式实例简单详解 正则表达式干什么用? 就是在字符串中提取我们需要的内容的. 记得哦,要先引用正则表达式模块的哦. re就是正则表达式相

python爬虫-使用cookie登录

前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的. 一.Urllib库简介 Urllib是python内置的HTTP请求库,官方地址:https://docs.python.org/3/library/urllib.ht

Python爬虫模拟登录京东获取个人信息

原文  http://www.xgezhang.com/python_crawler_jingdong.html 先上我的代码.参考了上面链接的文章 # -*- coding: utf-8 -*- # !/usr/bin/python import os import urllib2 import urllib import cookielib import re  import sys from bs4 import BeautifulSoup ''' 编码方式的设置,在中文使用时用到中文时的

2017.08.17 Python爬虫实战之BS4获取起点小说信息

1.目标分析: (1)打开起点中文网,搜索所有完本小说: 原始的网址是这样的:http://a.qidian.com/?action=1&orderId=&page=1&style=1&pageSize=2&siteid=4&hiddenField=3 界面是这样的: 修改网址中的参数,观察不同效果: 再修改参数style试试: (2)查看页面源代码: 2.项目实施: (1)创建远程数据库以及表: CREATE TABLE `qiDianBooks` ( `

Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu

网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me, come on! 第一步:首先,我们从网上获取图片自动下载到自己电脑的文件内,如从网址,下载到F:\File_Python\Crawler文件夹内,具体代码请查看http://www.cnblogs.com/yunyaniu/p/8244490.html 第二步:我们利用非监督学习的Hierar

【python爬虫】cookie & session

一.什么是cookie? cookie是指网站为了鉴别用户身份,进行会话跟踪而存储在客户端本地的数据. 二.什么是session? 本来的含义是指有始有终的一些列动作,而在web中,session对象用来在服务器存储特定用户会话所需要的属性及信息. 三.cookie和session产生的原因: cookie和session他们不属于http协议范围,由于http协议是无法保持状态,但实际情况,我们有需压保持一些信息,作为下次请求的条件,所有就产生了cookie和session. 四.cookie

Python爬虫-爬取照片并保存

"""请求网页""" import requests import re import time import os headers={ 'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537' } response=requests.get('https://w