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 13 Python
Python 闭包的使用方法
Sep 07 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
python3 xpath和requests应用详解
Mar 06 Python
Python OrderedDict字典排序方法详解
May 21 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
基于python模拟TCP3次握手连接及发送数据
Nov 06 Python
Django项目在pycharm新建的步骤方法
Mar 02 Python
python自动化测试之Selenium详解
Mar 13 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
Numpy中的mask的使用
2018/07/21 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python如何在bool函数中取值
2020/09/21 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
蔻驰西班牙官网:COACH西班牙
2019/01/16 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
毕业生就业自荐书
2013/12/15 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
学用政策心得体会
2014/09/10 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书