最代码官方
2013-11-20 12:35:42
一个站长常用的类似于获取关键词排名的java工具类
可以通过指定关键词和站点名来自动抓取百度的搜索结果从而得知自己的网站在某个搜索词的排名,类似于http://www.aizhan.com/siteall/zuidaima.com/
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class AnyBaiduKeywordRank { public static String request(String url) { StringBuffer res = new StringBuffer(); HttpURLConnection conn = null; try { URL serverUrl = new URL(url); conn = (HttpURLConnection) serverUrl.openConnection(); conn.setRequestMethod("GET");// "POST" ,"GET" conn.setConnectTimeout(10000); conn.setReadTimeout(10000); conn.connect(); InputStream ins = conn.getInputStream(); String charset = "UTF-8"; InputStreamReader inr = new InputStreamReader(ins, charset); BufferedReader bfr = new BufferedReader(inr); String line = ""; do { res.append(line); line = bfr.readLine(); } while (line != null); inr.close(); bfr.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); } } return res.toString(); } public static void main(String[] args) throws Exception { String keyword = "分享"; String site = "javaniu"; keyword = URLEncoder.encode(keyword, "utf-8"); int p = 1; int s = 10; String url = "http://www.baidu.com/s?wd=%s&pn=%s&ie=utf-8&usm=1&rsv_page=1"; while (true) { int pn = (p - 1) * s; String _url = String.format(url, keyword, pn + ""); System.out.println("Request url " + _url); String html = request(_url); if (html.indexOf(site) != -1) { System.out.println("Find keyword"); break; } p++; } } }
原理很简单,大家可以发挥想象力去抓取任意想象的数据。这不正是code的魅力么。
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
最近浏览
徐万强 LV9
2023年12月12日
1WQAQW1 LV2
2023年6月12日
nbzhou2013 LV14
2022年6月2日
3199625134 LV10
2022年4月20日
wuhaigang LV9
2021年10月20日
知恩的渔民 LV1
2021年8月2日
oranges LV3
2021年7月8日
Zeorwyc LV8
2021年3月20日
oo3534 LV2
2020年10月10日
mani_dudi LV5
2020年10月3日