网页抓取手机号(Google开发的libphonenumber库最新的话见查询不出包版本介绍 )

优采云 发布时间: 2022-04-20 13:45

  网页抓取手机号(Google开发的libphonenumber库最新的话见查询不出包版本介绍

)

  谷歌开发的libphonenumber库主要用于用户解析、格式化、存储、验证国际手机号码。开源后可以引入最新的jar包,调用对应方法获取对应手机号归属地等信息。 由于原理是在jar包中收录所有手机号信息内容,如果导入的jar包不是最新的,则可能无法查询到最新批次的手机号内容。因此,需要在对应的View中,随着时间的推移更新jar包版本。具体代码如下:

  在pom中引入对应的jar包(以下geocoder和libphonenumbere为最新版本):

  

com.googlecode.libphonenumber

geocoder

2.99

com.googlecode.libphonenumber

libphonenumber

8.9.14

com.googlecode.libphonenumber

carrier

1.5

  /**

* 根据手机号获取归属地

* @param phoneNum

* @return

*/

public static String getCity(String phoneNum){

PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();

PhoneNumberOfflineGeocoder phoneNumberOfflineGeocoder = PhoneNumberOfflineGeocoder.getInstance();

String language ="CN";

Phonenumber.PhoneNumber referencePhonenumber = null;

try {

referencePhonenumber = phoneUtil.parse(phoneNum, language);

} catch (NumberParseException e) {

e.printStackTrace();

}

//手机号码归属城市 city

String city= phoneNumberOfflineGeocoder.getDescriptionForNumber(referencePhonenumber,Locale.CHINA);

return city;

}

  /**

* 根据手机号和国家代码(中国代码86) 判断手机运营商

* @param phoneNumber

* @param countryCode

* @return

*/

public static String getCarrier(String phoneNumber, String countryCode){

PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance();

int ccode = Integer.valueOf(countryCode);

long phone = Long.valueOf(phoneNumber);

Phonenumber.PhoneNumber pn = new Phonenumber.PhoneNumber();

pn.setCountryCode(ccode);

pn.setNationalNumber(phone);

//返回结果只有英文,自己转成成中文

String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH);

String carrierZh = "";

switch (carrierEn) {

case "China Mobile":

carrierZh += "移动";

break;

case "China Unicom":

carrierZh += "联通";

break;

case "China Telecom":

carrierZh += "电信";

break;

default:

break;

}

return carrierZh;

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线