天降爆米花 2021-03-22 13:15 采纳率: 100%
浏览 57
已采纳

如何节省请求次数,提高爬取效率

我有个需求就是爬取一个接口的数据,此接口只接收一个参数ID,此ID的规则如下

202102271024384610

我分隔说下含义

2021年02月27日10点24分38秒  +  4610申请人身份证后四位

我也研究过身份证后四位的编码规则,基本就是10*10*10*11种组合

前面时间的话是一天24*60*60种组合,按实际情况去掉凌晨的8个小时,实际一天也就200-300条数据

我要在16*60*60*10*10*10*11里找这200-300条数据,如何能提高成功率呢?是不是只能穷举了.....

prefix = '2021031720'
for minute in range(0, 1):
    for second in range(0, 60):
        for no in range(0, 100):
            for last in range(0, 11):
                if last == 10:
                    last = 'X'
                indexId = prefix + str(minute).zfill(2) + str(second).zfill(2) + str(no).zfill(3) + str(last)
                login_data = {'indexId': indexId}
                r = s.post('http://xx.com', login_data)
                result = json.loads(r.text)
                print("正在抓取:"+indexId)
                if (result.get('status') == 0):
                    print("抓到一个:"+indexId)

补充下背景:

1.男女性比例差不太多,身份证奇偶位算一样概率

2.地区主要是冀鲁豫地区、年龄主要是22-40岁

3.申请时间主要是白天,晚上居多,凌晨几乎没有

  • 写回答

3条回答 默认 最新

  • 关注

    目标的200-300条数据本身有什么规律或者特征吗?比如男性较多、女性较多?之类的。还是完全随机的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?