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小程序
Aug 15 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
Python socket服务常用操作代码实例
Jun 22 Python
Python机器学习三大件之一numpy
May 10 Python
pandas 实现将NaN转换为None
May 14 Python
教你用python实现一个无界面的小型图书管理系统
May 21 Python
python中subplot大小的设置步骤
Jun 28 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/10/09 PHP
php Try Catch异常测试
2009/03/01 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
详解vue 数据传递的方法
2018/04/19 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
培训主管岗位职责
2014/02/01 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
就业导师推荐信范文
2015/03/27 职场文书
运动员代表致辞
2015/07/29 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书