我有个需求就是爬取一个接口的数据,此接口只接收一个参数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.申请时间主要是白天,晚上居多,凌晨几乎没有