wordpress多站点 域名,备案网站名称攻略,宜家有做自己的网站吗,种子网站模板一、数据抓包 所谓抓包#xff08;Package Capture#xff09;#xff0c;简单来说#xff0c;就是在网络数据传输的过程中对数据包进行截获、查看、修改或转发的过程。如果把网络上发送与接收的数据包理解为快递包裹#xff0c;那么在快递运输的过程中查看里面的内容Package Capture简单来说就是在网络数据传输的过程中对数据包进行截获、查看、修改或转发的过程。如果把网络上发送与接收的数据包理解为快递包裹那么在快递运输的过程中查看里面的内容这就是抓包。
二、Charles的介绍和使用 在分析异步加载的网页时Chrome的开发者工具非常好用。通过在开发者工具的“Network”选项卡中寻找被加载的数据然后用Python模拟出这个数据的请求从而直接访问网站的后台接口就可以得到数据。 但是开发者工具有一个特别不方便的地方那就是没法对数据进行搜索。如果想知道一个特定的异步加载内容来自哪个请求必须在“Network”选项卡里面一个请求一个请求地进行查看。如果一个网页的请求有几百个那么这样寻找起来是非常费时、费力的。要简化寻找数据的过程就需要设法直接全局搜索网页的所有请求的返回数据。 为了实现这个目的就需要使用Charles。Charles是一个跨平台的HTTP抓包工具。使用它可以像Chrome一样截取HTTP或者HTTPS请求的数据包。同时Charles还有Chrome所不具备的很多奇妙功能。
三、Charles的安装和使用 Charles是一个收费软件官方网站地址为https://www.charlesproxy.com/。如果没有注册安装以后的前30天可以正常使用。30天以后虽然功能不会缩水但每过30分钟Charles会自动关闭一次。 Charles有Windows 32位/64位版、Mac OS版和Linux 64位版。读者可在下载页面选择符合自己系统的版本进行下载。 Charles的下载和安装没有任何难点。在Windows系统中直接双击安装文件进行安装即可任何设置都不需要修改同意许可协议以后一直单击“Next”按钮直到安装完成在Mac OS系统中双击下载下来的.dmg文件同意许可协议以后把Charles的水瓶图标拖到Application这个文件夹里面即可。安装完成后第一次运行Charles会弹出一个对话框提示需要获取权限来自动配置网络单击“Grant Privileges”按钮并输入系统密码运行即可。
四、Charles的使用 Charles上面滚动的数据就是目前计算机发起的数据包。单击工具栏上面的黄色笤帚图标可以清空当前的数据包记录单击笤帚右边的红色圆点图标可以停止抓包且红色圆点变成灰色圆点。暂停以后再单击灰色圆点Charles恢复抓包。在Charles启动时系统自带浏览器的所有HTTP流量都会经过Charles此时可以看到数据包。在数据包非常多的情况下使用Charles的过滤功能来对数据包进行过滤从而减少干扰。在Filter这一栏中输入域名就可以显示只包含这个域名的数据包单击“Filter”输入框下方的“Contents”按钮查看数据包的详细信息。 如果浏览器是Chrome在没有安装第三方代理插件的情况下Chrome的HTTP流量都会经过Charles。但是如果安装了第三方的类似于SwitchyOmega这种代理插件那么就可以在插件里面添加一个代理代理IP为127.0.0.1端口为8888。在Chrome使用这个代理的情况下就可以正常让Charles监控流量了计算机上的任意软件如果支持自定义代理的功能那么设置代理IP为127.0.0.1端口为8888也可以让Charles监控这个软件。当Charles抓包以后在Mac OS系统下可以按CommandF组合键在Windows系统下按CtrlF组合键打开Charles进行搜索。 有一点需要注意JSON里面的中文是无法直接搜索到的为了搜索到中文需要首先在Python里面创建一个带中文的字典或者列表然后把它转换成JSON再从JSON中复制出中文对应的Unicode码来进行搜索。
五、抓取HTTPS数据包 如果使用Charles直接抓取HTTPS的数据包就会出现大量的Method为CONNECT的请求但是这些请求又全部都会失败。出现这种情况是因为没有安装SSL证书导致的。要安装SSL证书可选择菜单栏的“Help”- “SSL Proxying”-“Install Charles Root Certificate”命令。 对于Mac OS系统“钥匙串访问”窗口会自动弹出来Charles的证书已经出现在了其中双击Charles证书所在的这一行在新打开的窗口中展开“信任”三角形按钮将“使用此证书时”设定为“始终信任”关闭这个弹出来的窗口系统会自动弹出输入密码的窗口输入密码以后证书就安装好了。 对于Windows系统选择菜单栏中的“Help”- “SSL Proxying”-“Install Charles Root Certificate”会自动弹出证书信息单击“安装证书”按钮打开证书导入向导然后单击“下一步”按钮选择“将所有的证书都放入下列存储”单选按钮单击“浏览”按钮在弹出的对话框中选择“受信任的根证书颁发机构”单击“确定”按钮。单击“下一步”按钮会弹出一个警告对话框单击“是”按钮完成证书安装。 无论是Windows还是Mac OS系统完成了证书的安装以后剩下的操作就一致了。 安装好证书以后选择菜单栏中的“Proxy”-“SSL Proxying Settings”命令打开SSL代理设置对话框在SSL代理设置对话框单击“Add”按钮在“Host”输入框中输入星号在“Port”输入框中输入443设置好证书和SSL代理以后再回到浏览器刷新网页就可以看到Charles成功截获到了数据包。
六、App爬虫和小程序爬虫 使用Charles可以轻松截获手机App和微信小程序的数据包从而开发出直接抓取App后台和小程序后台的爬虫。为了实现使用Charles抓取手机的数据包就需要先把证书安装到手机上。
6.1 iOS系统的配置和使用 对于苹果设备首先要保证计算机和苹果设备联在同一个Wi-Fi上。选择Charles菜单栏中的“Help”-“Local IP Address”命令此时弹出一个对话框显示当前计算机的内网IP地址。接下来设置手机。进入系统设置选择“无线局域网”然后单击已经连接的这个Wi-Fi热点右侧的圆圈包围的字母i的图标选择“HTTP代理”下面的“手动”选项卡在“服务器”处输入计算机的IP地址在“端口”处输入8888输入完成代理以后按下苹果设备的Home键设置就会自动保存。注意计算机上立刻就会弹出一个对话框询问是否允许一台设备通过计算机代理上网单击“Allow”按钮允许以后只能使用iOS系统自带的Safari浏览器访问https://chls.pro/ssl。此时会弹出一个对话框询问是否显示配置描述文件单击“允许”按钮。 允许配置描述文件后会自动弹出对话框单击右上角的“安装”按钮弹出另一个对话框显示描述文件信息安装完成证书以后在设置中打开“关于本机”找到最下面的“证书信任设置”并在里面启动对Charles证书的完全信任。这样一个证书就在iOS设备上安装好了安装好证书以后打开iOS设备上的任何一个App可以看到Charles中有数据包在流动。 有了Charles要抓取文章信息根本不需要先在计算机网页上打开网站再写XPath。在Charles的帮助下开发一个App后台的爬虫就像开发一个异步加载的爬虫一样简单而且结果直接就是JSON转换成字典以后直接就能存到MongoDB里面极其方便。
6.2 Android的配置和使用 要实现Charles对Android抓包其过程比iOS稍微复杂一点。这是因为不同的Andorid设备安装证书的入口可能不一样这就需要根据自己手机的实际情况来寻找。 首先在Charles中选择“Help”-“SSL Proxying”-“Save Charles Root Certificate”命令将Charles的证书保存到计算机桌面。 为了在手机上安装证书需要先发送证书到手机里面。如果计算机系统为Windows那么直接插上USB线就可以传送。如果计算机系统是Mac OS那么可以使用QQ传文件或者微信的文件传输助手把证书文件发送到手机里面。 虽然Android里面安装证书的位置可能不同但一般都在“系统设置”-“WLAN”里面。打开Wi-Fi功能有的Android系统这个界面的左下角或者右下角可能有3个点点开以后是一个高级设置的菜单。而另一些Android手机的系统例如小米手机的MIUI系统则是直接在最下面就可以找到高级设置选择“高级设置”打开高级设置界面继续选择“安装证书”系统会打开文件浏览器在里面找到刚才发送到手机上面的证书文件。找到证书并单击“确定”按钮此时会弹出一个窗口提示给证书设定一个名字这个名字可以任意设定。 单击“确定”按钮证书就安装好了。接下来和iOS一样需要为手机设置代理让手机的流量经过Charles。在系统设置中打开当前连接的Wi-Fi设置界面并将代理设置为Charles对应的IP和端口号。和iOS不同的是Android设置了代理以后需要单击“确定”按钮。代理设置好以后Android的环境就搭建好了。在手机上任意打开一个App就可以看到Charles上面有数据在流动。
6.3 微信小程序爬虫 使用Charles抓取微信小程序的步骤与抓取App几乎没有区别。当使用Charles监控iOS设备或者Android设备的数据包以后打开微信小程序小程序的数据包就会自动被Charles抓住。 小程序的请求极其简单基本上没有验证信息即便有验证信息也非常脆弱。用Python来请求小程序的后台接口从而获取数据比请求异步加载网页的后台接口要容易很多。在爬虫开发过程中如果目标网站有微信小程序那么一定要优先调查能否通过小程序的接口来抓取数据。小程序的反爬虫能力比网页版的低很多。使用小程序的接口来爬数据能极大提高爬虫的开发效率。
七、Charles的局限 Charles只能截获HTTP和HTTPS的数据包如果网站使用的是websocket或者是flashsocket那么Charles就无能为力。 有一些App会自带证书使用其他证书都无法正常访问后台接口。在这种情况下Charles自带的证书就不能正常使用也就没有办法抓取这种App的数据。 有一些App的数据经过加密App接收到数据以后在其内部进行解密。对于这种情况Charles只能抓取到经过加密的数据。如果无法知道数据的具体加密方法就没有办法解读Charles抓取到的数据。 --------------------------------------
没有自由的秩序和没有秩序的自由同样具有破坏性。
--------------------------------------