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 thread 并发且顺序运行示例
Apr 09 Python
Flask数据库迁移简单介绍
Oct 24 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python 学习教程之networkx
Apr 15 Python
pyqt5 使用label控件实时显示时间的实例
Jun 14 Python
Python之pymysql的使用小结
Jul 01 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
基于Django框架的权限组件rbac实例讲解
Aug 31 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
利用python实现汉诺塔游戏
Mar 01 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 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 4.2书写安全的脚本
2006/10/09 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php与paypal整合方法
2010/11/28 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
简单谈谈Python中函数的可变参数
2016/09/02 Python
Python饼状图的绘制实例
2019/01/15 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
物业保安主管岗位职责
2013/12/25 职场文书
青年文明号事迹材料
2014/01/18 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
集中采购方案
2014/06/10 职场文书
委托书的格式
2014/08/01 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
公司员工手册范本
2015/05/14 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书