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实现指定字符串补全空格的方法
Apr 30 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Python打印输出数组中全部元素
Mar 13 Python
使用Python实现图像标记点的坐标输出功能
Aug 14 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
python为什么会环境变量设置不成功
Jun 23 Python
Python必须了解的35个关键词
Jul 16 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
Apr 02 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类
2006/07/15 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
javascript 面向对象继承
2009/11/26 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
python简单分割文件的方法
2015/07/30 Python
详解python3实现的web端json通信协议
2016/12/29 Python
Python中的pack和unpack的使用
2018/03/12 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
Python tkinter实现日期选择器
2021/02/22 Python
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
硕士研究生个人求职信
2013/12/04 职场文书
花店创业计划书范文
2014/02/07 职场文书
小小的船教学反思
2014/02/21 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
总经理检讨书
2014/09/15 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
部门2015年度工作总结
2015/04/29 职场文书
写给老师的保证书
2015/05/09 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL