网络爬虫360手机助手搜索功能
关键字
- jsoup
- 网络爬虫
- 360搜索
- 安卓开发
- 应用市场
用途
- 根据用户输入的关键字,通过网络爬虫技术获取360手机应用市场搜索结果列表,搜索结果包括:应用名、图标、描述、下载地址、下载量、评分、以及搜索结果的总条数等信息,基本可以满足搜索需求。该代码片段既可以运用于服务端,也可以运用于服务端。
效果图(怎么这么丑?,你懂的)
需要的jar
- jsoup.jar【google:jsoup】
核心源码(有详细注释)
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import com.wgyscsf.bean.Info;
/**
* @author 高远</n> 编写日期 2016-8-16下午7:33:48</n> 邮箱 wgyscsf@163.com</n> 博客
* http://blog.youkuaiyun.com/wgyscsf</n> TODO</n>
*/
public class CoreService {
private static String TAG = "CoreService";
/**
*
* 根据关键字获取360应用市场搜索结果列表信息。
*/
public synchronized static List<Info> getSearchInfos(String searchWord,
String pager) {
// 搜索的链接
String searchUrl = "http://zhushou.360.cn/search/index/?kw=";
// 数据存放的集合
List<Info> infoList = new ArrayList<Info>();
// 目标搜索url
if (pager == null || pager == "") {
searchUrl += searchWord;
} else {
searchUrl += searchWord + "&page=" + pager;
}
// 获取源码
String html = ConnUtils.look(searchUrl);
// 所去所有节点
Document doc = Jsoup.parse(html);
// 获取目标根节点
Elements elements = doc.getElementsByClass("SeaCon");
// 只有一个元素节点
Element element = elements.get(0);
// 获取搜索信息
String searchInfo = element.getElementsByClass("title_tr").get(0)
.getElementsByClass("red")
.get(0).text();
// System.out.println(TAG + ":" + searchInfo);
// 找到核心数据li列表
Elements liElements = element.getElementsByTag("li");
for (Element e : liElements) {
Info info = new Info();
//设置搜索信息
info.setSearchNums(searchInfo);
//获取app图标
String appIocn = e.getElementsByTag("dt").get(0)
.getElementsByTag("a").get(0)
.getElementsByTag("img")
.get(0).attr("_src");
info.setImgPath(appIocn);
// 获取应用名
String appName = e.getElementsByTag("dd").get(0)
.getElementsByTag("a").get(0).text();
info.setName(appName);
// 获取描述信息
String appTips = e.getElementsByTag("dd").get(0)
.getElementsByTag("p").get(0).text();
info.setTips(appTips);
// 找到评分以及下载量
String starsAndDownInfo = e.getElementsByClass("sdlft")
.get(0).text();
info.setStars(starsAndDownInfo.substring(0,
starsAndDownInfo.indexOf("分 ") + 1));
info.setDownNums(starsAndDownInfo.substring(starsAndDownInfo
.indexOf("分 ") + 2));
//System.out.println(TAG + ":" + info.getStars() + "*"
// + info.getDownNums());// ok
// 开始获取下载链接
String downPath = e.getElementsByClass("seaDown").get(0)
.getElementsByTag("a").attr("href");
info.setDownPath(downPath);
infoList.add(info);
System.out.println(TAG + ":" + info);
}
return infoList;
}
public static void main(String[] args) {
List<Info> infos = getSearchInfos("qq", "");// 搜索关键字以及搜索结果的页码(可为空,默认为1)
System.out.println("单个信息如下:" + infos.get(0));
}
}
操作源码下载
http://download.youkuaiyun.com/detail/wgyscsf/9605139