无法获取数据?如何修改通过python从网络获取组播节目的相关代码说明

关于代码说明:本人非计算机专业,也非程序猿,只是对python比较感兴趣,在明确相关原理后利用python自动化流程来代替我们需要手动完成的相关事项,代码为GPT生成基础上修改整合而来,相比专业程序猿所写肯定相差甚远,因此代码只能保证基本逻辑正确,运行中也会存在bug,本人未做专业测试。所分享代码和相关文件仅供个人测试,禁止商业行为,一切与商业有关违法行为与本人无关。

一、无法获得数据的可能原因

上两篇文章有最终的组播获取节目的代码和打包的可执行exe程序:

最后更新代码:如何利用python爬取暴露在网络中的组播节目并自动测试保存

如何将写好的python代码打包成可执行exe文件——组播节目获取Windows程序文件来了

有粉丝反应无法获取数据,可能原因1、本来没有数据。2、增加搜索地区时未按照rtp文件夹下的文件格式,放入对应的文件。3、对应搜索的运营商值和fofa的org值不匹配,因此无法获取相应的数据。在此感谢@BRAVO 提出的问题点:

图片

在此也说明一下如何修改代码:

首先说明一下程序流程是:我们通过读取rtp文件夹下的文件名 省份_运营商.txt ,读取省份名赋值给province,运营商赋值给isp,根据isp来设定fofa的查询语法的组织的值,即org的值。

因为fofa公共查询不支持模糊查询:

图片

如果可以使用模糊查询理论上可以用这样的查询语法:org *= “China Unicom” 来查询组织包含 china unicom即中国联通的结果。

因此我们查询运营商时只能通过 org 精确查询,那么我们怎么找到该地区需要的org值呢,可以参考查询语句,以查询北京联通的org值为例:

在fofa网站输入如下语句查询,

“china unicom” && country=”CN” && region=”Beijing”

图片

找到北京联通的org值为:China Unicom Beijing Province Network

当然可能不只包含这个,我们可以设定这个来做为查询放入代码相应位置。

原代码:

    # 根据不同的 isp 设置不同的 org 值
    org = "Chinanet"
    if isp == "电信":
        isp_en = "ctcc"
        org = "Chinanet"
    elif isp == "联通":
        isp_en = "cucc"
            org = "CHINA UNICOM China169 Backbone"
    else:
        org = ""

可修改代码为:

    # 根据不同的 isp 设置不同的 org 值
    if province == "北京" and isp == "联通":
        isp_en = "cucc"
        org = "China Unicom Beijing Province Network"
    elif isp == "联通":
        isp_en = "cucc"
        org = "CHINA UNICOM China169 Backbone"
    elif isp == "电信":
        org = "Chinanet"
        isp_en = "ctcc"
    elif isp == "移动":
        org == "China Mobile communications corporation"
        isp_en = "cmcc"
如添加其他新的地区运营商org值可以参照添加北京联通的org值的格式继续添加条件语句即可。

二、修改后代码打包exe文件

参照前面文章即可

如何将写好的python代码打包成可执行exe文件——组播节目获取Windows程序文件来了

这里就不再打包了。

三、题外

其他类似fofa的空间测绘还有,使用方法差不多:

https://quake.360.net/
https://www.zoomeye.org/

有兴趣可以研究在这里查询我们想要的数据。

这几天在研究如何从http://tonkiang.us这个iptv搜索爬取想要的数据下来,还没成功,后面再考虑更新。

欢迎扫码关注本公众号,后台发消息给我,我会即时进行回复的哦。

无法获取数据?如何修改通过python从网络获取组播节目的相关代码说明

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部