使用fillder进行腾讯街景爬虫

本文介绍利用Fiddler进行街景爬取的方法。首先,需从官网下载Fiddler并安装,接着配置证书,包括导出和在火狐、Chrome浏览器导入。然后,打开腾讯街景网站观察请求,截取含svid的请求。最后,设置Fiddler过滤规则,保存数据到文件,再用Python脚本提取svid调用接口获取街景数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 下载并配置fiddler

前置准备:如果证书过期,参考这里https://blog.csdn.net/weixin_50902406/article/details/132022258

1.1 下载

去官网https://www.telerik.com/download/fiddler 下载fiddler的安装包。请注意,下载的是fiddler而不是filddler everywhere(因为直接网页搜索fiddler的话很容易就下载成第二个了),注意这俩下载页面都不一样噢
在这里插入图片描述

在这里插入图片描述下载完成后进行安装,无需注册登录,如果安装成功后的页面和我一样,那就对了。
在这里插入图片描述
其中左边就是抓取到的网页请求了,右侧选择不同标签(比如下面的headers),可以查看该请求的详细信息。
在这里插入图片描述

1.2 配置证书

如果仔细观察一下就会发现,现在能够抓取到的包大多数都是HTTP的,没有HTTPS的。并且此时如果保持fiddler处于开启状态,并且打开如https://www.baidu.com的页面的时候,会显示 不安全的链接,这是由于fiddler没有配置证书的缘故所造成的。因此接下来会介绍如何配置证书

在这里插入图片描述

1.2.1 导出证书

打开工具栏的Tools,选择Option
在这里插入图片描述

再选择HTTPS的选项,先勾选Decrypt HTTPS traffic,再勾选Ignore server certificate errors (unsafe)

在这里插入图片描述
最后点击最右侧的Actions,选择将证书导出到桌面`Export Root Certificate to Desktop
在这里插入图片描述

现在你的桌面就应该有一个叫做FiddlerRoot.cer的证书文件了
在这里插入图片描述

1.2.2 导入证书

接下来就要给浏览器导入该证书,不同的浏览器导入的方式不一样,但方法都很简单。

1.2.2.1 火狐浏览器导入证书

在导航栏中输入about:preferences#privacy并回车,即可进入到设置的隐私页面,向下拉动窗口就可以找到证书相关的设置。
在这里插入图片描述点击查看证书按钮,选择导入桌面的证书文件即可。
在这里插入图片描述

1.2.2.2 Chrome浏览器导入证书

在导航栏输入chrome://settings/security,也是进入到设置的隐私界面
在这里插入图片描述接下来点击右侧的按钮,按照提示上传证书即可。
在这里插入图片描述因为对系统进行了更改,fiddler会出现黄色的提示,点击的话就会运用最新的设置。
在这里插入图片描述

这样一来,随便点开一个页面,fiddler就会刷刷刷显示https请求了

在这里插入图片描述

2. 进行街景爬取

2.1 观察街景请求

点开腾讯街景的网站,并进入到街景页面https://lbs.qq.com/tool/streetview/index.html。当鼠标在街景上点击的时候,可以看到有很多请求在fiddler快速的闪过

在这里插入图片描述

可以观察到每张街景图片都有自己的svid,因此只需要截取包含svid的请求,就可以通过调取接口的方式获取到街景了。

2.2 设置fiddler过滤规则

点击菜单栏的Rules,选择Customize Rules,就会打开一个文本编辑器的页面。
在这里插入图片描述使用ctrl+f来搜索OnBeforeRequest,找到这个函数
在这里插入图片描述
在该函数的最末尾添加下面的代码

// 如果请求的url中主机名为sv1.map.qq.com,由于腾讯街景有很多个主机名,比如sv0,sv2,也可以扩大匹配规则来提高命中url的数量
// 并且url中包含svid这个字段
 if (oSession.HostnameIs("sv1.map.qq.com") && oSession.uriContains("svid")){  
 			// 将url保存到该文件中
            var filename = "E:/test.txt";  
            var curDate = new Date();  
            var logContent =  "[" + curDate.toLocaleString() + "] " + oSession.PathAndQuery + "\r\n";  
            var sw : System.IO.StreamWriter;  
            if (System.IO.File.Exists(filename)){  
                sw = System.IO.File.AppendText(filename);  
                sw.Write(logContent);  
            }  
            else{  
                sw = System.IO.File.CreateText(filename);  
                sw.Write(logContent);  
            }  
            sw.Close();  
            sw.Dispose();  
        }

插入到OnBeforeRequest这个函数里面就可以了,如下图
在这里插入图片描述

在这里插入图片描述使用ctrl+s进行保存。如果听到一阵提示音就说明保存成功。

接下来再到街景页面进行手动点击,一段时间后就可以看到数据在不断地保存到test.txt的文件中~
在这里插入图片描述

接着再去写个python脚本提取每一行的svid就可以调用接口获取街景数据了。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值