Python3爬虫带上cookie的实例代码


Posted in Python onJuly 28, 2020

Cookie的英文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的“点心”。服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如电子商务)特别有用。

当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息。

下面我们就来看一下python3爬虫带上cookie的方法:

1、直接将Cookie写在header头部

# coding:utf-8
import requests
from bs4 import BeautifulSoup
cookie = '''cisession=19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60;CNZZDATA1000201968=181584
6425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483922031;Hm_lvt_f805f7762a9a2
37a0deac37015e9f6d9=1482722012,1483926313;Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9=14839
26368'''
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Geck
o) Chrome/53.0.2785.143 Safari/537.36',
'Connection': 'keep-alive',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Cookie': cookie}
url = 'https://3water.com/article/191947.htm'
wbdata = requests.get(url,headers=header).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)

2、使用requests插入Cookie

# coding:utf-8
import requests
from bs4 import BeautifulSoup
cookie = {
"cisession":"19dfd70a27ec0eecf1fe3fc2e48b7f91c7c83c60",
"CNZZDATA100020196":"1815846425-1478580135-https%253A%252F%252Fwww.baidu.com%252F%7C1483
922031",
"Hm_lvt_f805f7762a9a237a0deac37015e9f6d9":"1482722012,1483926313",
"Hm_lpvt_f805f7762a9a237a0deac37015e9f6d9":"1483926368"
}
url = 'https://3water.com/article/191947.htm'
wbdata = requests.get(url,cookies=cookie).text
soup = BeautifulSoup(wbdata,'lxml')
print(soup)

实例扩展:

使用cookie登录哈工大ACM站点

获取站点登录地址

http://acm.hit.edu.cn/hoj/system/login

查看要传送的post数据
user和password

Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = 'pi'
__email__ = 'pipisorry@126.com'

"""
import urllib.request, urllib.parse, urllib.error
import http.cookiejar

LOGIN_URL = 'http://acm.hit.edu.cn/hoj/system/login'
values = {'user': '******', 'password': '******'} # , 'submit' : 'Login'
postdata = urllib.parse.urlencode(values).encode()
user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
headers = {'User-Agent': user_agent, 'Connection': 'keep-alive'}

cookie_filename = 'cookie.txt'
cookie = http.cookiejar.MozillaCookieJar(cookie_filename)
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)

request = urllib.request.Request(LOGIN_URL, postdata, headers)
try:
  response = opener.open(request)
  page = response.read().decode()
  # print(page)
except urllib.error.URLError as e:
  print(e.code, ':', e.reason)

cookie.save(ignore_discard=True, ignore_expires=True) # 保存cookie到cookie.txt中
print(cookie)
for item in cookie:
  print('Name = ' + item.name)
  print('Value = ' + item.value)

get_url = 'http://acm.hit.edu.cn/hoj/problem/solution/?problem=1' # 利用cookie请求?问还有一个网址
get_request = urllib.request.Request(get_url, headers=headers)
get_response = opener.open(get_request)
print(get_response.read().decode())
# print('You have not solved this problem' in get_response.read().decode())

到此这篇关于Python3爬虫带上cookie的实例代码的文章就介绍到这了,更多相关Python3爬虫如何带上cookie内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
Python下载网络小说实例代码
Feb 03 Python
Python3.7中安装openCV库的方法
Jul 11 Python
Python实现端口检测的方法
Jul 24 Python
django+mysql的使用示例
Nov 23 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Django项目后台不挂断运行的方法
Aug 31 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python基于opencv实现人脸识别
Jan 04 Python
python实现批处理文件
Jul 28 #Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
Jul 28 #Python
python爬虫请求头设置代码
Jul 28 #Python
详解python安装matplotlib库三种失败情况
Jul 28 #Python
最简单的matplotlib安装教程(小白)
Jul 28 #Python
Python 如何实现访问者模式
Jul 28 #Python
Matplotlib 折线图plot()所有用法详解
Jul 28 #Python
You might like
php adodb操作mysql数据库
2009/03/19 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php两种无限分类方法实例
2015/04/21 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
深入了解Python 变量作用域
2020/07/24 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
主要的Ajax框架都有什么
2013/11/14 面试题
中学生团员自我评价分享
2013/12/07 职场文书
领导的自我鉴定
2013/12/28 职场文书
高三地理教学反思
2014/01/11 职场文书
教学实验楼管理制度
2014/02/01 职场文书
消防安全检查制度
2014/02/04 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书