package cn.ictgu.parse.search;
import cn.ictgu.dto.Video;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* 视频搜索
* Created by Silence on 2017/3/27.
*/
@Component
public class VideoSearch {
private static final String le = "http://m.le.com";
private static final String api = "http://m.le.com/search";
private static final String ua = "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Mobile Safari/537.36";
public List<Video> searchVideos(String keyword){
List<Video> videos = new ArrayList<>();
Document document = requestAPI(keyword);
if (document==null)
return videos;
Elements elements = document.select("div.a_temp2.j-list");
for (Element element : elements){
Video video = createVideo(element);
videos.add(video);
}
return videos;
}
private Document requestAPI(String keyword){
try {
return Jsoup.connect(api).userAgent(ua).ignoreContentType(true).data("wd", keyword).get();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private Video createVideo(Element element){
Video video = new Video();
String url = element.select("a.a_img").attr("data-href");
if (url.startsWith("http")){
video.setValue(url);
}else {
video.setValue(le + url);
}
String image = element.select("a.a_img img").attr("data-src");
String title = element.select("a.item_r_title").text();
String provider = element.select("a.a_cnt_icon").text();
video.setTitle(title);
video.setProvider(provider);
video.setImage(image);
return video;
}
}