环境搭建
新建模块es-jd
1.添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
2.导入资源
3.更改端口
server.port=9090
4.编写indexcontroller
@Controller
public class IndexController {
@GetMapping({
"/","/index"})
public String getIndex(){
return "index";
}
}
5.访问
爬取数据
1.添加依赖
<!-- 解析网页-->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
2.编写代码爬取京东的数据,并显示,这里固定了关键字查询,下一步我们将这个搜索封装为一个utils
package com.cyx.utils;
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.net.URL;
@Component
public class HtmlParseUtil {
public static void main(String[] args) throws Exception {
//获取连接,前提需要联网
String url="https://search.jd.com/Search?keyword=java";
//解析网页 jsoup返回的document就是浏览器Document对象
Document document = Jsoup.parse(new URL(url), 30000);
//js中使用的方法,这里都可以使用
Element element = document.getElementById("J_goodsList");
// System.out.println(element.html());//获取完整的div信息
//获取所有的li元素
Elements elements = element.getElementsByTag("li");
//获取元素的内容,el是每一个li标签
for (Element el:elements){
//获取第一个元素的document
//source-data-lazy
String img = el.getElementsByTag("img").eq(0).attr("src");
String price = el.getElementsByClass("p-price").eq(0).text();
String<