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的ORM框架SQLObject入门实例
Apr 28 Python
在Python程序中操作文件之flush()方法的使用教程
May 24 Python
Python聊天室实例程序分享
Jan 05 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
python如何为创建大量实例节省内存
Mar 20 Python
python matlibplot绘制多条曲线图
Feb 19 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
Python实现Singleton模式的方式详解
Aug 08 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Python3爬虫中Selenium的用法详解
Jul 10 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
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
定义php常量的详解
2013/06/09 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
jQuery 树形结构的选择器
2010/02/15 Javascript
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
2018/01/02 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
JavaScript数组去重算法实例小结
2018/05/07 Javascript
解析Python编程中的包结构
2015/10/25 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Python 12306抢火车票脚本
2018/02/07 Python
python自动化报告的输出用例详解
2018/05/30 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
使用python3构建文件传输的方法
2019/02/13 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
写给女朋友的检讨书
2014/01/28 职场文书
小学毕业感言150字
2014/02/05 职场文书
运动会口号16字
2014/06/07 职场文书
大学生实习证明范本
2014/09/19 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
奔腾年代观后感
2015/06/09 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers