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学习之asyncore模块用法实例教程
Sep 29 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
python爬虫获取新浪新闻教学
Dec 23 Python
python opencv判断图像是否为空的实例
Jan 26 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
python用线性回归预测股票价格的实现代码
Sep 04 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
numpy实现RNN原理实现
Mar 02 Python
python实现网络五子棋
Apr 11 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原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
javascript Base类 包含基本的方法
2009/07/22 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
使用python实现飞机大战游戏
2020/03/23 Python
python接口自动化框架实战
2020/12/23 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
大学在校生求职信范文
2013/11/21 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
租房合同协议书
2014/04/09 职场文书
为自己工作观后感
2015/06/11 职场文书
家属联谊会致辞
2015/07/31 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android