利用HttpURLConnection进行手机号段归属地数据采集
公司里需要手机号段归属地资料,手头上没有现成的数据,就自己做了个采集器,连到ip138.com网站上进行采集。这是最终运行界面:
?
?
?
?
首先在网页上输入至少7位的手机号码段进行查询,通过查看查询页面的HTML,发现将会提交两个参数:mobile=手机号码&action=mobile,然后对结果页面的HTML进行分析,找到关键的两行HTML:
接下来的事情就是利用HttpURLConnection进行查询请求,并将返回的结果用正则表达式进行提取。程序的功能并不复杂,设计上也就简单地做了两个类,一个负责数据的分析和采集;另一个为Main主程序,负责用AWT构建界面和创建一个后台线程来调用采集类进行手机号段范围的循环提交请求,并将获取的数据写入文本文件。
?
主程序在构建界面时代码冗长,只贴执行操作的后台线程内部类代码:
?
OK,现在我的程序正采集着数据,很快就可以交差了:)
3 楼 helynfeng 2009-07-14 额,骗局.
4 楼 yajie 2009-07-15 用动态代理
另外你写的代码死板板的,如果人家把页面改成DIV的,不用table了,你岂不要是修改源码? 5 楼 gzhzh 2009-07-15 yajie 写道用动态代理
另外你写的代码死板板的,如果人家把页面改成DIV的,不用table了,你岂不要是修改源码?
谢谢指教!你说说如何能不修改源码就可以适应人家页面的修改?在网页还没使用XML和遵照制定好的标准之前,没人做得到吧? 6 楼 playfish 2009-07-15
楼主做得应该还算不错的哈。。不过我觉得用上httpclient来代替原生的httpurlconnection比较好,封装得比较完全,使用也比较简单。
至于解析,如果懂得正则表达式,那就完美了.不然可以考虑下一些html解析器,Jericho,html parser之类的。
引用写的代码死板板的,如果人家把页面改成DIV的,不用table了,你岂不要是修改源码?
呵呵,这种情况第一,不多,第二,碰上了的话,无论如何是不可避免要改代码的。
PS:这种类型的东西我做得好多了。。熟练着。。 7 楼 gzhzh 2009-07-16 playfish 写道
楼主做得应该还算不错的哈。。不过我觉得用上httpclient来代替原生的httpurlconnection比较好,封装得比较完全,使用也比较简单。
至于解析,如果懂得正则表达式,那就完美了.不然可以考虑下一些html解析器,Jericho,html parser之类的。
谢谢指教!呵呵,其实做这个东东只是想一次性地获取数据并交差而已,界面甚至是多余的,HTMLParser用在这里也是杀鸡用牛刀了。功能完全是按公司的需求来做的,并没有做成常用工具的需求,如果有那个需求的话,我考虑的就会更全面了。 8 楼 wy8232255 2012-09-18 您好,楼主您好,我现在正需要这样的实例程序来完成公司的项目需求,能否把您的代码发到我的邮箱里,我的邮箱是:hashsound@126.com ,吾将感激不尽啊.....