Python爬虫谷歌Chrome F12抓包过程原理解析
浏览器打开网页的过程就是爬虫获取数据的过程,两者是一样一样的。浏览器渲染的网页是丰富多彩的数据集合,而爬虫得到的是网页的源代码htm有时候,我们不能在网页的html代码里面找到想要的数据,但是浏览器打开的网页上面却有这些数据。这就是浏览器通过ajax技术异步加载(偷偷下载)了这些数据。
大家禁不住要问:那么该如何看到浏览器偷偷下载的那些数据呢?
答案就是谷歌Chrome浏览器的F12快捷键,也可以通过鼠标右键菜单“检查”(Inspect)打开Chrome自带的开发者工具,开发者工具会出现在浏览器网页的左侧或者是下面(可调整),它的样子就是这样的:
让我们简单了解一下它如何使用:
谷歌Chrome抓包:1. 最上面一行菜单
左上角箭头 用来点击查看网页的元素
第二个手机、平板图标是用来模拟移动端显示网页
Elements 查看渲染后的网页标签元素
提醒 是渲染后(包括异步加载的图片、数据等)的完整网页的html,不是最初下载的那个html。
Console 查看JavaScript的console log信息,写网页时比较有用
Sources 显示网页源码、CSS、JavaScript代码
Network 查看所有加载的请求,对爬虫很有帮助
后面的暂且不管。
谷歌Chrome抓包:2. 重要区域
图中红框的两个按钮比较有用,编号为2的是清空请求记录;编号3的是保持记录,这在网页有重定向的时候很有用
图中绿色区域就是加载完整个网页,浏览器的全部请求记录,包括网址、状态、类型等。写爬虫时,我们就要在这里寻找线索,提炼金矿。
最下面编号为4的红框显示了加载这个网页,一共请求了181次,数量是多么地惊人,让人不禁心疼七浏览器来。
点击一条请求的网址,右侧就会出现新的窗口显示该条请求的相信信息:
图中左边红框就是点击的请求网址;绿框就是详情窗口。
详情窗口包括,Headers(请求头)、Preview(预览响应)、Response(服务器响应内容)和Timing(耗时)。
Preview、Response 帮助我们查看该条请求是不是有爬虫想要的数据;
Headers帮助我们在爬虫中重建http请求,以便爬虫得到和浏览器一样的数据。
了解和熟练使用Chrome的开发者工具,大家就如虎添翼可以顺利写出自己的爬虫啦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python爬虫:Request Payload和Form Data的简单区别说明
Request Payload 和 Form Data 请求头上的参数差别在于: Content-Type Form Data Post表单请求 代码示例 headers = { "Content-Type": "application/x-www-form-urlencoded" } requests.post(url, data=data, headers=headers) Request Payload 传递json数据 headers = { "C
-
如何基于windows实现python定时爬虫
Windows系统下使用任务计划程序,Linux下可以使用crontab命令添加自启动计划. 这里写Windows 10 / windows Server 2016系统的设置方法. 首先编写一个.bat脚本.新建一个txt,将下面三行代码复制进去,main.py改成自己程序名字.保存为.bat文件,放在对应的.py文件同一目录. 这时候点击.bat文件即可执行py文件.然后我们将.bat脚本设置自启动. @echo offstart python main.py %*exit 按下图点开任务计划
-
Python爬虫HTPP请求方法有哪些
HTTP请求方法 GET:请求指定的页面信息,并返回实体主体. HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中.POST请求可能会导致新的资源的建立和/或已有资源的修改. PUT:从客户端向服务器传送的数据取代指定的文档的内容. DELETE:请求服务器删除指定的页面. CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器. OPTIONS:允许客户端
-
python爬虫实现POST request payload形式的请求
1. 背景 最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数据格式(Form data).而使用Form data数据的提交方式时,无法提交成功. 1.1. Http请求中Form Data 和 Request Payload的区别 AJAX Post请求中常用的两种传参数的形式:form data 和 request payload 1.1.1. Form data get请求的时候,我们的参数直接反映在url里面,形式为
-
Python小白学习爬虫常用请求报头
客户端HTTP请求 URL只是标识资源的位置,而HTTP是用来提交和获取资源.客户端发送一个HTTP请求到服务器的请求消息,包括以下格式: 请求行.请求头部.空行.请求数据 一个典型的HTTP请求 GET https://www.baidu.com/ HTTP/1.1 Host: www.baidu.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; Wi
-
Python爬虫JSON及JSONPath运行原理详解
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.适用于进行数据交互的场景,比如网站前台与后台之间的数据交互. JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java. JsonPath 对于 JSON 来说,相当于 XPATH 对于 XML. JsonPath与XPath语法对
-
基python实现多线程网页爬虫
一般来说,使用线程有两种模式, 一种是创建线程要执行的函数, 把这个函数传递进Thread对象里,让它来执行. 另一种是直接从Thread继承,创建一个新的class,把线程执行的代码放到这个新的class里. 实现多线程网页爬虫,采用了多线程和锁机制,实现了广度优先算法的网页爬虫. 先给大家简单介绍下我的实现思路: 对于一个网络爬虫,如果要按广度遍历的方式下载,它是这样的: 1.从给定的入口网址把第一个网页下载下来 2.从第一个网页中提取出所有新的网页地址,放入下载列表中 3.按下载列表中的地
-
Python爬虫模拟登录带验证码网站
爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 首先得明白cookie的作用,cookie是某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据.因此我们需要用Cookielib模块来保持网站的cookie. 这个是要登陆的地址 http://202.115.80.153/ 和验证码地址 http://202.115.80.153/CheckCode.
-
Python爬虫谷歌Chrome F12抓包过程原理解析
浏览器打开网页的过程就是爬虫获取数据的过程,两者是一样一样的.浏览器渲染的网页是丰富多彩的数据集合,而爬虫得到的是网页的源代码htm有时候,我们不能在网页的html代码里面找到想要的数据,但是浏览器打开的网页上面却有这些数据.这就是浏览器通过ajax技术异步加载(偷偷下载)了这些数据. 大家禁不住要问:那么该如何看到浏览器偷偷下载的那些数据呢? 答案就是谷歌Chrome浏览器的F12快捷键,也可以通过鼠标右键菜单"检查"(Inspect)打开Chrome自带的开发者工具,开发者工具会出
-
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
使用Python爬虫库requests多线程抓取猫眼电影TOP100思路: 查看网页源代码 抓取单页内容 正则表达式提取信息 猫眼TOP100所有信息写入文件 多线程抓取 运行平台:windows Python版本:Python 3.7. IDE:Sublime Text 浏览器:Chrome浏览器 1.查看猫眼电影TOP100网页原代码 按F12查看网页源代码发现每一个电影的信息都在"<dd></dd>"标签之中. 点开之后,信息如下: 2.抓取单页内容 在浏
-
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
本文实例讲述了Python爬虫实现网页信息抓取功能.分享给大家供大家参考,具体如下: 首先实现关于网页解析.读取等操作我们要用到以下几个模块 import urllib import urllib2 import re 我们可以尝试一下用readline方法读某个网站,比如说百度 def test(): f=urllib.urlopen('http://www.baidu.com') while True: firstLine=f.readline() print firstLine 下面我们说
-
使用Python实现windows下的抓包与解析
系统环境:windows7,选择windows系统是因为我对自己平时日常机器上的流量比较感兴趣 python环境:python2.7 ,这里不选择python3的原因,是因为接下来要用到的scapy包在python3中安装较于python2要麻烦得多.如果你习惯于用python3,数据包的分析完全可以放在3下面做,因为抓包和分析是两个完全独立的过程. 需要的python包:scapy和dpkt 抓包代码: from scapy.sendrecv import sniff from scapy.u
-
Python爬虫之网页图片抓取的方法
一.引入 这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载. 二.代码 __author__ = "JentZhang" import urllib.request import os import random import re def url_open(url): ''' 打开网页 :param url: :return: ''' req = urllib.reques
-
软件测试实现Finddler的手机抓包过程
目录 Fiddler的手机抓包过程 1.启动Fiddler 2.在Fiddler Options"对话框 3.在本机命令行输入:ipconfig 4.打开android设备的"设置" 5.在"代理"后面的输入框选择"手动" 6.然后启动android设备中的浏览器 Fiddler的手机抓包过程 1.启动Fiddler 打开菜单栏中的 Tools > Fiddler Options,打开"Fiddler Options&q
-
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
1.引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor.本文记录了确定gsExtractor的技术路线过程中所做的编程实验.这是第二部分,第一部分实验了用xslt方式一次性提取静态网页内容并转换成xml格式.留下了一个问题:javascript管理的动态内容怎样提取?那么本文就回答这个问题. 2.提取动态内容的技术部件 在上一篇python使用xslt提取网页数据中,要提取的内容是直接从网页的source code里拿到的.但是一些Aja
-
Python爬虫 12306抢票开源代码过程详解
今天就和大家一起来讨论一下python实现12306余票查询(pycharm+python3.7),一起来感受一下python爬虫的简单实践 我们说先在浏览器中打开开发者工具(F12),尝试一次余票的查询,通过开发者工具查看发出请求的包 可以看到红框框中的URL就是我们向12306服务器发出的请求,那么具体是什么呢?我们来看看 https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-21&leftT
-
Python爬虫获取页面所有URL链接过程详解
如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup? Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序. Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换
-
python爬虫 urllib模块发起post请求过程解析
urllib模块发起的POST请求 案例:爬取百度翻译的翻译结果 1.通过浏览器捉包工具,找到POST请求的url 针对ajax页面请求的所对应url获取,需要用到浏览器的捉包工具.查看百度翻译针对某个字条发送ajax请求,所对应的url 点击clear按钮可以把抓包工具,所抓到请求清空 然后填上翻译字条发送ajax请求,红色框住的都是发送的ajax请求 抓包工具All按钮代表 显示抓到的所有请求 ,包括GET.POST请求 .基于ajax的POST请求 XHR代表 只显示抓到的基于ajax的P
随机推荐
- Angular2学习教程之ng中变更检测问题详解
- Java Spring MVC 上传下载文件配置及controller方法详解
- Java 8新特性方法引用详细介绍
- asp.net 文件下载实现代码
- JavaScript通过字典进行字符串翻译转换的方法
- .NET 缓存设计的使用说明
- php实现每天自动变换随机问候语的方法
- NodeJS实现图片上传代码(Express)
- destoon常用的安全设置概述
- Python脚本实现代码行数统计代码分享
- Bootstrap每天必学之导航
- 基于Bootstrap框架实现图片切换
- 再JavaScript的jQuery库中编写动画效果的指南
- JS获取元素多层嵌套思路详解
- js ie非ie浏览器的几种判断方法小结
- java右下角弹窗示例分享
- ASP.NET 5已终结,迎来ASP.NET Core 1.0和.NET Core 1.0
- 探讨:如何使用委托,匿名方法对集合进行万能排序
- OpenCV实现马赛克和毛玻璃滤镜效果
- Layui 设置select下拉框自动选中某项的方法