前言
工作中遇到要统计一堆人邮编信息的情况,网络目前提供的批量邮编查询功能又太弱,一个一个的把他们的地址粘到百度上查询再录入太过麻烦,所以写一个小脚本完成这个单调的工作。
1.接口选择
- 本文选择百度的邮编查询页面进行查询
- 分析发现邮箱查询的请求是通过Get方式实现的,链接为
http://opendata.baidu.com/post/s?wd=%BD%AD%CB%D5%CA%A1%D1%CE%B3%C7%CA%D0&rn=20 - 而我们的关键字就是wd这个参数的值了,后续只要对其参数化便可实现不同值的查询
2.脚本编写
- 下一步就可以开始编写我们的脚本,通过web_url构造一个简单的get请求,并对wd的值进行参数化
1
2
3
4
5
6
7
8
9web_url("s",
"URL=http://opendata.baidu.com/post/s?wd={chengshi}&rn=20",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,LAST);、
- 参数化
3.关联并获取邮编
- 通过关联去获取查找的邮编,关联左右边界如下,关联技巧不做详细介绍
1
2
3
4
5
6web_reg_save_param("youbian",
"LB=</em> ",
"RB=</a></li>",
"NotFound=ERROR",
"Search=Body",
LAST);
4.简单的打印查看结果
到此为止,加入简单的输出函数,我们就可以实验有没有成功了
1
lr_error_message("city is:%s youbian is:%s",lr_eval_string("{chengshi}"),lr_eval_string("{youbian}"));
运行结果
1
Action.c(20): Error: city is:江苏省睢宁县 youbian is:221200
5.打印到本地txt文本中
- 为了方便录入,我们将找到的邮编统一放置到txt文本中,函数如下
1 | 在输出语句后加入代码 |
全部代码
1 | Action() |