我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python爬虫-02:HTTPS请求与

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python爬虫-02:HTTPS请求与

目录

  • 1. HTTP和HTTPS
    • 1.1. HTTP的请求和响应流程:打开一个网页的过程
    • 1.2. URL
  • 2. 客户端HTTP请求
  • 3. Fiddler抓包工具的使用
    • 3.1. 工作原理
    • 3.2. Fiddler抓取HTTPS设置
    • 3.3. Fiddler抓取Chorme的对话
    • 3.4. Fidder界面介绍
    • 3.5. 实例:捕捉访问百度时候的请求和响应
  • 4. 其他内容
    • 4.1 Cookie和Session


HTTP: 一种发布和接受HTML页面方法,端口号为80
HTTPS: HTTP的安全版,在HTTP上加入了SSL层,端口号为443
SSL: 用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全

网络爬虫可以理解为模拟浏览器操作的过程

浏览器的主要功能是向服务器发送请求,在浏览器窗口展示您选择的网络资源,HTTP是一套计算机通过网络进行通信的规则

1.1. HTTP的请求和响应流程:打开一个网页的过程

主要流程

1.2. URL

基本格式: scheme://host[:port]/path/.../[?query-string][#anchor]

  • scheme:协议, http,https
  • host: 服务器的IP地址或者域名
  • port#: 服务器的端口(如果是协议默认端口,缺省端口为80)
  • path : 访问资源的路径
  • query-string : 参数,发送给http服务器的数据
  • anchor : 锚(跳转到网页的而制定锚点位置)

例如:

http://www.baidu.com



URL只是标识资源的位置,而HTTP是用来提交和获取资源. 客户端发送一个HTTP请求到服务器请求消息,包括如下格式

请求行、请求头部、空行、请求数据

  • 请求行

由请求方法字段、URL字段和HTTP协议版本字段组成,通过空格分隔,例如:GET /index.html HTTP/1.1
HTTP协议的请求方法主要有GET,POST方法
1) GET:从服务器获取数据
定义: 最常见的一种请求方式,当客户端要从服务器中读取文档时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页的,使用的都是GET方式

GET请求参数显示,都显示在浏览器网址上,HTTP服务器根据该请求所包含的URL参数来阐述响应内容,即GET请求的参数是URL的一部分: http://www.baidu.com/s?wd=Chinese

"Get" 请求的参数 是URL的一部分

2) POST:向服务器传送数据

POST请求参数在请求体中,消息长度没有限制且以隐式的方式进行发送,通过用来向HTTP服务器提交数据(上传文件等),请求的参数放在Content-Type消息头中,指明该消息的媒体类型和编码

"POST"请求的参数 不在URL中,而在请求体中。



Fiddler是一款强大Web调试工具,它能记录所有客户端和服务器的HTTP请求。 Fiddler启动的时候,默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置。

3.1. 工作原理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888

Fidder

3.2. Fiddler抓取HTTPS设置

  1. 首先需要在官网上下载Fiddler安装程序:https://www.telerik.com/fiddler

  2. 启动Fiddler,打开菜单栏中的 Tools > Telerik Fiddler Options,打开“Fiddler Options”对话框。

fidder2

  1. 对Fidder进行设置
  • 打开工具栏->Tools->Fiddler Options->HTTPS,
  • 选中Capture HTTPS CONNECTs (捕捉HTTPS连接),
  • 选中Decrypt HTTPS traffic(解密HTTPS通信)
  • 另外我们要用Fiddler获取本机所有进程的HTTPS请求,所以中间的下拉菜单中选中...from all processes (从所有进程)
  • 选中下方Ignore server certificate errors(忽略服务器证书错误)

Fidder3

Fidder4

  1. Fiddler 主菜单 Tools -> Fiddler Options…-> Connections

Fidder5

  1. 重启Fidder

3.3. Fiddler抓取Chorme的对话

使用chorme的SwitchOmega插件 + 搭配使用SwitchOmega和Fiddler抓取数据

switch1

3.4. Fidder界面介绍

设置好后,本机HTTP通信都会经过127.0.0.1:8888代理,也就会被Fiddler拦截到。

fiddlerintr

请求 (Request) 部分详解

  • Headers —— 显示客户端发送到服务器的 HTTP 请求的 header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等。
  • Textview —— 显示 POST 请求的 body 部分为文本。
  • WebForms —— 显示请求的 GET 参数 和 POST body 内容。
  • HexView —— 用十六进制数据显示请求。
  • Auth —— 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息.
  • Raw —— 将整个请求显示为纯文本。
  • JSON - 显示JSON格式文件。
  • XML —— 如果请求的 body 是 XML 格式,就是用分级的 XML 树来显示它。

响应 (Response) 部分详解

  • Transformer —— 显示响应的编码信息。
  • Headers —— 用分级视图显示响应的 header。
  • TextView —— 使用文本显示相应的 body。
  • ImageVies —— 如果请求是图片资源,显示响应的图片。
  • HexView —— 用十六进制数据显示响应。
  • WebView —— 响应在 Web 浏览器中的预览效果。
  • Auth —— 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息。
  • Caching —— 显示此请求的缓存信息。
  • Privacy —— 显示此请求的私密 (P3P) 信息。
  • Raw —— 将整个响应显示为纯文本。
  • JSON - 显示JSON格式文件。
  • XML —— 如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它 。

3.5. 实例:捕捉访问百度时候的请求和响应

请求头(www.baidu.com)

# 1. 请求行:请求方法+URL+协议号
GET https://www.baidu.com/ HTTP/1.1

# 2. 请求头补:
Host: www.baidu.com
Connection: keep-alive  # 常链接,不关闭长期保存
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1  # 升级一个不安全的请求: HTTP->HTTPS
# 浏览器客户端的一个版本信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 
# 可以接收的文本的类型  
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
# 客户端可以做的编码操作
Accept-Encoding: gzip, deflate, br  
# 客户端支持的语言 + 权重
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,en-CA;q=0.6
# Cookie值:保存在本地浏览器的文本文件,记录当前在网络中的状态-》比如记录账户密码自动登录
Cookie: BAIDUID=4F583A04A0193EBE0C9849C551B9305C:FG=1; BIDUPSID=4F583A04A0193EBE0C9849C551B9305C; PSTM=1545978093; BD_UPN=12314753; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=1440_21082_28205_28132_27751_27245_27509; H_PS_645EC=4f9b6%2FduIgSKPevnFeBA8pfSrBrfEA3Hy4jDyjs%2FTHh5IbfnjsLRKgH25MM; delPer=0; BD_CK_SAM=1; PSINO=7; BD_HOME=0
x-hd-token: rent-your-own-vps

响应的内容(www.baidu.com)

这跟我们右击游览器查看源代码出来的代码是一摸一样的



4.1 Cookie和Session

Cookie: 通过客户端记录的信息确定用户的身份
Session: 通过服务器记录的信息确定用户的身份

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python爬虫-02:HTTPS请求与

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python爬虫-02:HTTPS请求与

目录 1. HTTP和HTTPS 1.1. HTTP的请求和响应流程:打开一个网页的过程 1.2. URL 2. 客户端HTTP请求
2023-01-30

python爬虫#网络请求request

中文文档http://docs.python-requests.org/zh_CN/latest/user/quickstart.htmlrequests库虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是
2023-01-30

2019-02-13 Python爬虫问

soup=BeautifulSoup(html.text,'lxml')#data=soup.select('body > div.main > div.ctr > div > div.newsmcont > p:nth-of-type(3
2023-01-30

Java HttpClient爬虫请求

**本项目采用spring-boot构建, maven工程 添加依赖 pom文件 4.0.0 org.test testDome 0.0.1-SNAPSHOT org.apache.httpcomponents htt
2023-08-17

02 python网络爬虫《Http和H

一.HTTP协议  1.概念:    Http协议就是服务器(Server)和客户端(Client)之间进行数据交互(相互传输数据)的一种形式。之间形成的特殊行话(黑话:(土匪)天王盖地虎,(我)宝塔镇河妖)称为协议。  2.Http工作原
2023-01-31

Python爬虫之网络请求实例分析

本篇内容介绍了“Python爬虫之网络请求实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.IP代理某些网站会检测一段时间内某IP的
2023-06-30

Python爬虫基础之请求的示例分析

小编给大家分享一下Python爬虫基础之请求的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、请求目标(URL)URL又叫作统一资源定位符,是用于完整地
2023-06-15

python爬虫使用request库发送get请求的示例

这篇文章主要介绍python爬虫使用request库发送get请求的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,
2023-06-14

如何快速的生成一个Python爬虫请求头

今天就跟大家聊聊有关如何快速的生成一个Python爬虫请求头,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py
2023-06-06

爬虫学习之第一章网络请求

爬虫的实际例子:搜索引擎(百度、谷歌、360搜索等)。伯乐在线。惠惠购物助手。数据分析与研究(数据冰山知乎专栏)。抢票软件等。什么是网络爬虫:通俗理解:爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页、并数据抓取下来,然后使用一定的规
2023-01-31

Python3网络爬虫实战-2、请求库安

在上一节我们了解了 ChromeDriver 的配置方法,配置完成之后我们便可以用 Selenium 来驱动 Chrome 浏览器来做相应网页的抓取。那么对于 Firefox 来说,也可以使用同样的方式完成 Selenium 的对接,这时需
2023-01-31

Python3网络爬虫实战-1、请求库安

爬虫可以简单分为几步:抓取页面、分析页面、存储数据。在第一步抓取页面的过程中,我们就需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现 HTTP 请求操作,在本书中我们用到的第三方库有 Requests、Seleniu
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录