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网络编程学习笔记(三):socket网络服务器
Jun 09 Python
基于Python的关键字监控及告警
Jul 06 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
在CMD命令行中运行python脚本的方法
May 12 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
Python 调用PIL库失败的解决方法
Jan 08 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
Python使用正则实现计算字符串算式
Dec 29 Python
Python restful框架接口开发实现
Apr 13 Python
python中tab键是什么意思
Jun 18 Python
多个版本的python共存时使用pip的正确做法
Oct 26 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+mysql 实现身份验证代码
2010/03/24 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
2009/11/26 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python3中exp()函数用法分析
2019/02/19 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
Django celery异步任务实现代码示例
2020/11/26 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
新郎婚宴答谢词
2014/01/19 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
温馨提示标语
2014/06/26 职场文书
女生抽烟检讨书
2014/10/05 职场文书
汽车转让协议书
2015/01/29 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技