phoneNameMap.put(“17526304161”, “卫丹”);
phoneNameMap.put(“15422018558”, “戚丽红”);
phoneNameMap.put(“17269452013”, “何翠柔”);
phoneNameMap.put(“17764278604”, “钱溶艳”);
phoneNameMap.put(“15711910344”, “钱琳”);
phoneNameMap.put(“15714728273”, “缪静欣”);
phoneNameMap.put(“16061028454”, “焦秋菊”);
phoneNameMap.put(“16264433631”, “吕访琴”);
phoneNameMap.put(“17601615878”, “沈丹”);
phoneNameMap.put(“15897468949”, “褚美丽”);
}
/**
数据形式:主叫-被叫-通话建立时间-通话时长
数据形式对应字段名:caller,callee,buildTime,duration
*/
public String product(){
/*主叫、被叫电话号/
String caller = null;
String callee = null;
//主叫、被叫姓名
String callerName = null;
String calleeName = null;
/* 取得主叫好吗 */
int callerIndex = (int) (Math.random() * phoneList.size());
caller = phoneList.get(callerIndex);
callerName = phoneNameMap.get(caller);
/*
取得被叫号码
*/
int calleeIndex = (int) (Math.random() * phoneList.size());
callee = phoneList.get(callerIndex);
calleeName = phoneNameMap.get(callee);
while (true){
/**
*random()左闭右开
- 取得被叫号码*/
calleeIndex = (int) (Math.random() * phoneList.size());
callee = phoneList.get(calleeIndex);
calleeName = phoneNameMap.get(callee);
if (!caller.equals(callee)){
break;
}
}
//第三个参数:随机通话建立时间
String buildTime = randomBuildTime(startTime,endTime);
//第四个参数0000
DecimalFormat df = new DecimalFormat(“0000”);
String duration = df.format((int) (30 * 60 * Math.random()));
StringBuilder sb = new StringBuilder();
sb.append(caller + “,”).append(callee + “,”).append(buildTime + “,”).append(duration);
return sb.toString();
}
//时间形式:2018-01-18 22:38:53
private String randomBuildTime(String startTime, String endTime){
try {
SimpleDateFormat sdf1 = new SimpleDateFormat(“yyyy-MM-dd”);
Date startDate = sdf1.parse(startTime);
Date endDate = sdf1.parse(endTime);
if (endDate.getTime() <= startDate.getTime()){
return null;
}
//随机通话建立时间得Long型
long randomTs = startDate.getTime() + (long) ((endDate.getTime() - startDate.getTime()) * Math.random());
Date resultDate = new Date(randomTs);
SimpleDateFormat sdf2 = new SimpleDateFormat(“yy-MM-dd HH:mm:ss”);
String resultTimeString = sdf2.format(resultDate);
return resultTimeString;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//写数据到文件中
public void writeLog(String filePath){
try {
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(filePath, true));
while (true){
Thread.sleep(500);
String log = product();
System.out.println(log);
osw.write(log+“\n”);
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-cUndAbdl-1710904221986)]