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的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
使用Python设计一个代码统计工具
Apr 04 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
自定义django admin model表单提交的例子
Aug 23 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
Pytorch的mean和std调查实例
Jan 02 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
python基础之模块的导入
Oct 24 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
使用PHP函数scandir排除特定目录
2014/06/12 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
dedecms中使用php语句指南
2014/11/13 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
php字符集转换
2017/01/23 PHP
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
jQuery中replaceAll()方法用法实例
2015/01/16 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
益模软件Java笔试题
2012/03/27 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
护理工作感言
2014/01/16 职场文书
大学生旷课检讨书
2014/01/22 职场文书
节能减耗标语
2014/06/21 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
Ruby处理CSV数据方法详解
2022/04/18 Ruby