记一次抓取网络接口

153次阅读
没有评论

前言

最近,站长沉迷 社会工程学 达到走火入魔。

其实,学习这方面的知识也只是为了更好地保护自己的隐私,也为了方便在关键时刻能够帮到自己和他人,本人只是小小初中生一个,不可能拿无罪技术去进行违法犯罪行为。

记一次抓取网络接口
这不,我在百度搜到了一套 “Q绑查询” 网页源码(来自AIDE技术网),本来还没觉得什么,但是标题显眼的一段字吸引了我:“自带查询接口”。

我心想,这不是学爬虫的一个简单的机会吗?所以,我尝试用毕生所学,果然,源码下载下来不到两分钟,里面调用的查询接口就被我找了出来。

接下来有请看我表演:


开工

下载源码

本文资源来自《Q绑查询HTML单页源码 自带查询接口 - AIDE技术网》

很多信息都在源码文件里,虽然我很确定这个网站不是源码的一手发布者,但是文章里面就这么介绍一套源码就太敷衍了吧!至少来点特点解说吧!(这诠释了什么叫做一张图(可以看看原文章,就在下面截图所示文字上面)证明一切)

记一次抓取网络接口网站的下载没什么特殊要求,毕竟这个网站也挺大个的。文件直接往网盘里一放,就公开了。130+kb,不大,下载用时真的是零秒:

记一次抓取网络接口

解压源码

新建一个文件夹,把文件解压进去,完sir!

记一次抓取网络接口

威力测试

打开网页文件 index.html,先弹出一个温馨的提示:本站永久免费。

中间还有一条滚动提示:仅供自己查询,发现泄露可以及时更改手机号(但是野心极强的我们怎么可能那么听话呢?)。

记一次抓取网络接口

站长随便输入了一下自己的 QQ 号,点击“查找”,结果让我出乎意料:

这个还未部署的网页文件竟然直接准确查出本人的 QQ 密保号码,并给出相应的号码归属地(后者倒是不难):

记一次抓取网络接口

为了防止被轰炸,这里做了涂抹处理。至于为什么站长的手机号会泄露,有可能是因为本人太具有吸引力了吧前两年开始深入接触网络,注册了太多账号导致的。这里得顺便投诉一下那些网站所有者(亲测用了其他人的账号(有经同意),基本上查询不到)。

这个威力测试只是为了吸引大家的关注,激发广大读者的阅读兴趣。


开始分析

查看 index 文件源码

我凭之前习惯,直接用编辑器打开了 index.html 文件,上下翻来翻去,就是找不到目标的那一串网络接口。

我曾经想搜索“=”符,但是转念一想,不对,里面一堆变量用了赋值符。

事后才发现原来可以直接搜索“http”或用正则表达式查找[/打脸了]。

进一步折腾

我在浏览器里刷新了一遍页面,想按 F12 键打开控制台,失败;右键,也失败。因为源码里面有防 F12 代码,所以我直接依次点击 菜单-更多工具-开发者工具,成功打开控制台。

根据 Elements (元素)的范围一层层缩小,我找到了“查找”按键的元素所在,但是接口好像并不在这。但是这拦得住我们吗?没错,拦不住!接下来这一招是在分析很多在线网站可以用的绝招:

在控制台导航栏点击 “Network” (网络,确切地来说应该是所请求的网络链接),刷新一下页面:

记一次抓取网络接口

网页加载完后默认只进行的对必要文件的运行,如样式文件和图片文件等,我们还是在“请输入 QQ”输入栏中输入自己的 QQ 号,点击“查找”:

记一次抓取网络接口

这里立刻多了两条,其中一个是加载动画,另一个包含我们所输入内容的网络请求,这个就是这个网页程序在运行中所调用的网络接口了(本文中间部分把接口域名设为未知数x),点击这一项,会直接弹出内容的 Preview (预览):

记一次抓取网络接口

如图,这个网络请求返回了一个 json 字典,里面基本的查询状态、号码、归属地……都罗列出来了。

在这一项请求上右键 - Open in new tab(在新标签页中打开),查看网址栏,得出该接口为:x/qqcx?qq=实参


根据今天的实践,相信大家可以亲手操作并找到很多网站查询功能中所调用的接口。

现在公布一下这个接口:

Formal parameter Argument
x= zy.xywlapi.cc
Website SSL OPEN
api https://zy.xywlapi.cc/qqcx?qq=
qq=? Your QQ Number

顺便献上本人用此接口开发的简单工具的拙劣的代码(Python):

import requests
import webbrowser
import time

api = "https://zy.xywlapi.cc/qqcx?qq="
def get_data(qq_number):
    r = requests.get(api + qq_number)
    if r.status_code == 200:
        response_dict = r.json()
        return response_dict
    else:
        return False

introduction = """
=============================================================
|                                                           |
|                 Welcome to use this tool!                 |
|  Before you use it,you must follow these three rules:     |
|                                                           |
| 1.This tool is only used to check whether the mobile phone|
| number is leaked. Do not use it for illegal purposes (such|
| as checking other people's mobile phone number).          |
|                                                           |
| 2.This program calls the network API to realize the query |
| function. After the program was developed, it has been    |
| tested by developer and has no bug. In case of other      |
| "query failed" problems, please do not bother the         |
| developer.                                                |
|                                                           |
| 3.If this tool is widely publicized, it is easy to cause  |
| the server of the API provider to be abused and shut down,|
| resulting in failure. It is also easy to bring various    |
| legal and dispute problems to illegal communicators. The  |
| developer is not responsible for this.                    |
|                                                           |
|                                                           |
|                         Development Team : Geek Collection|
|                              Actual Developer : Albert Lin|
|                                          Blog : GKCOLL.XYZ|
=============================================================
"""
print(introduction)

run = True
while run:
    qq_number = input("Input the QQ number you want to query :")

    if get_data(qq_number) == False:
        print("Network connected failed,please try again...")
        print("-----------------------------------------------")
    else:
        # The api will return a json dict:{"status":200,"message":"查询成功","phone":"***********","phonediqu":"**** **","lol":"****","wb":"****","qqlm":"****"}
        data = get_data(qq_number)
        if data["message"] == "查询成功":
            phone = data["phone"]
            phone_number_from = data["phonediqu"]
            print("Query successfully!The phne number is " + phone + " , comes from " + phone_number_from + ".")
        elif data["message"] == "没有找到":
            print("Query failed,please try querying for other QQ number(s)...")
        print("-----------------------------------------------")

    continue_run = input("Do you want to continue? input y or Y for YES; n or N for NO :")
    if continue_run.lower() == "y":
        print("===============================================")
    else:
        input("Enter to exit and open developer's blog website , you can also choose to click the upper right corner to exit directly...")
        webbrowser.open("https://www.gkcoll.xyz")
        time.sleep(4)
        run = False

打包成程序:

 文件名称:Q绑查询.exe
 文件大小:Unknown
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
 下载地址:https://url72.ctfile.com/f/33764972-579518489-c18937?p=0116

灰尘疾客
版权声明:本站原创文章,由 灰尘疾客 2022-05-13发表,共计3827字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码