号段、运营商辅助数据爬取与解析

写在前面

  • 数据分析场景需要该类字典数据
  • 大多网站不全、未更新,脑壳疼,,,
  • 废话省略
    • 搜可用站点、撸代码、解析数据
  • 必备信息
    必备信息

爬取与解析

import re
import time
import random
import requests
import warnings
import datetime
import pandas as pd
from numpy import NAN
from datetime import datetime
from bs4 import BeautifulSoup
warnings.filterwarnings('ignore')
pd.set_option('display.max_rows',5000)
pd.set_option('display.max_colwidth',500)

import socket
# 设置socket层的超时时间为20秒
socket.setdefaulttimeout(20)  
header = {'User-Agent': 'Mozilla/5.0'}

import queue
import threading

# html页面获取
tp_url = "https://www.chahaoba.com/%E7%94%B5%E4%BF%A1%E5%8F%B7%E6%AE%B5"
response = requests.get(tp_url, headers=header)
soup = BeautifulSoup(response.content, 'html.parser')


# 数据解析与清洗
num_segment = [ul.getText().strip().split(":") for ul in soup.find_all("li") if ":" in ul.getText()]

other = [['1740(0~5)','中国电信,卫星移动通信业务专用号段'],['1740(6~9)','工业和信息化部应急通讯保障中心,卫星移动通信业务专用号段 (用于国家应急通信需求)']
,['1740(10~12)','工业和信息化部应急通讯保障中心,卫星移动通信业务专用号段 (用于国家应急通信需求)'],['199(0~9)','中国电信,公众移动通信网网号']
,['198(0~9)','中国移动,公众移动通信网网号'],['166(0~9)','中国联通,公众移动通信网网号']
,['148(0~9)','中国移动,公众移动通信网网号(物联网业务专用号段)'],['146(0~9)','中国联通,公众移动通信网网号(物联网业务专用号段)']
,['1410(0~9)','中国电信,物联网网号'],['1440(0~9)','中国移动,物联网网号']]

num_segment += other

qx_num_segment = []
for ele in num_segment:
    if ele[0].isdigit():
        tele = ele[1].split(',')
        qx_num_segment.append(ele+[tele[0] ,"".join(tele[1:])])
    else:
        seg_meta = re.findall(r"\d+\.?\d*",ele[0])
        if len(seg_meta) == 3:
            for s in range(int(seg_meta[1]),int(seg_meta[-1])+1):
                tele = ele[1].split(',')
                qx_num_segment.append([seg_meta[0] + str(s), ele[1], tele[0] ,"".join(tele[1:])])
                
# 数据合并与持久化
num_segment_df = pd.DataFrame(qx_num_segment,columns=['seg','seg_details','oper_net_ch','detail'])
num_segment_df['oper_net_ch'] = num_segment_df.oper_net_ch.apply(lambda oper_net_ch : '中国'+ oper_net_ch if len(oper_net_ch)==2 else oper_net_ch)

num_segment_df.to_csv('./号段_运营商_188.csv',encoding='utf8',index=None,sep='\t')

结果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xsimah

创作不易,感谢客官的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值