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实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
python实现括号匹配的思路详解
Aug 23 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
pytorch 实现查看网络中的参数
Jan 06 Python
如何基于Python实现自动扫雷
Jan 06 Python
python实现canny边缘检测
Sep 14 Python
Django框架安装及项目创建过程解析
Sep 14 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利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
DEFER怎么用?
2006/07/01 Javascript
document.all还是document.getElementsByName?
2006/07/21 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
jQuery知识点整理
2015/01/30 Javascript
jquery 根据name名获取元素的value值
2015/02/27 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python实现登录接口的示例代码
2017/07/21 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
物流管理专业自荐信
2014/06/23 职场文书
幼儿园个人总结
2015/02/28 职场文书
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js