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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
Python内置函数Type()函数一个有趣的用法
Feb 18 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
儿童编程python入门
May 08 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
解决python "No module named pip" 的问题
Oct 13 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 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封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
element中的$confirm的使用
2020/04/26 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python base64编码解码实例
2015/06/21 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python 为什么说eval要慎用
2019/03/26 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
初三学习计划书范文
2014/04/30 职场文书
2014年母亲节寄语
2014/05/07 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python