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 相关文章推荐
Python中的测试模块unittest和doctest的使用教程
Apr 14 Python
python使用reportlab实现图片转换成pdf的方法
May 22 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
Python 脚本的三种执行方式小结
Dec 21 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
解决python对齐错误的方法
Jul 16 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读取文件并可支持远程文件的代码分享
2012/10/03 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
python输入错误后删除的方法
2019/10/12 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
经典c++面试题三
2015/07/08 面试题
师范生实习自我鉴定
2013/11/01 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
党员民主生活会材料
2014/12/15 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python