当前位置: 首页 > news >正文

大气好寓意的广告公司名字企业seo关键词优化

大气好寓意的广告公司名字,企业seo关键词优化,福步论坛,在线旅游网站平台有哪些准备数据利用Jsoup爬取数据, Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。详情可参考:Jsoup中文使用手册以京东搜索的页面为例&…

准备数据

利用Jsoup爬取数据, Jsoup是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。详情可参考:Jsoup中文使用手册

以京东搜索的页面为例,检查网页源代码,可以发现,信息设置在如下div中

400cdb1ba6f2c1de3df499201356707d.png

代码如下:

@Data

@AllArgsConstructor

@NoArgsConstructor

public class JdContent{

private String img;

private String price;

private String title;

}

复制代码

@Component

public class HtmlParseUtil{

//京东搜索关键词Java的API

private final String url = "https://search.jd.com/Search?keyword=";

public List parseJD(String keyword) throws IOException{

//解析网页,返回的Document就是JS页面对象

Document docunment = Jsoup.parse(new URL(url+keyword), 3000);

//获取需要的标签ID

Element element = docunment.getElementById("J_goodsList");

//获取所有的li元素

Elements elements = element.getElementsByTag("li");

List list = new ArrayList();

for (Element el : elements) {

String img = el.getElementsByTag("img").eq(0).attr("src");

String price = el.getElementsByClass("p-price").eq(0).text();

String title = el.getElementsByClass("p-name").eq(0).text();

list.add(new JdContent(img,price,title));

}

return list;

}

}

复制代码

但是需要注意,比如受限于网速,图片也有可能会获取不到,为了提高访问速度,对于图片一般使用懒加载,再次观察网页源代码,可以看到img标签含有source-data-lazy-img属性,可以通过它来访问

a3ff257c88ff6646aded8b144bb576eb.png

String img = el.getElementsByTag("img").eq(0).attr("source-data-lazy-img");

复制代码

业务编写

插入数据

像已经建立的jd索引中插入数据

@Autowired

private RestHighLevelClient restHighLevelClient;

@Autowired

private HtmlParseUtil htmlParseUtil;

public boolean parseContent(String keyword) throws IOException{

List jdContents = htmlParseUtil.parseJD(keyword);

BulkRequest bulkRequest = new BulkRequest();

bulkRequest.timeout("1m");

for (JdContent jdContent : jdContents) {

bulkRequest.add(new IndexRequest("jd").source(JSON.toJSONString(jdContent), XContentType.JSON));

}

BulkResponse bulkResponse= restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);

return !bulkResponse.hasFailures();

}

复制代码

提供查询

public List> search(String keyword, int pageNo, int pageSize) throws IOException {

if (pageNo<1){

pageNo = 1;

}

//条件搜索

SearchRequest searchRequest = new SearchRequest("jd");

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

//分页

sourceBuilder.from(pageNo);

sourceBuilder.size(pageSize);

//匹配数据

MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", keyword);

sourceBuilder.query(matchQueryBuilder);

sourceBuilder.timeout(new TimeValue(50, TimeUnit.SECONDS));

//执行搜索

searchRequest.source(sourceBuilder);

SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);

//解析结果

ArrayList> list = new ArrayList>();

for (SearchHit hit : searchResponse.getHits().getHits()) {

list.add(hit.getSourceAsMap());

}

return list;

}

复制代码

前端交互

el:'#app',

data:{

keyword:'',//搜索的关键字

results:[]搜索的结果

},

methods: {

searchKey() {

var keyword = this.keyword;

// console.log(keyword);

axios.get('search/'+keyword+"/1/10").then(response=>{

// console.log(response);

this.results = response.data;

})

}

}

})

复制代码

其中,app是标签ID,keyword为输入栏绑定的model名称,searchKey触发事件

搜索

复制代码

遍历返回值即可

¥{{result.price}}

{{result.title}}

复制代码

关键字高亮

与普通查询大体逻辑相同,只需要设置自定义的高亮逻辑,并在ES的返回值中用高亮的内容替换原内容即可。

public List> searchHignLight(String keyword, int pageNo, int pageSize) throws IOException {

if (pageNo<1){

pageNo = 1;

}

//条件搜索

SearchRequest searchRequest = new SearchRequest("jd");

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

//分页

sourceBuilder.from(pageNo);

sourceBuilder.size(pageSize);

//匹配数据

MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", keyword);

sourceBuilder.query(matchQueryBuilder);

sourceBuilder.timeout(new TimeValue(50, TimeUnit.SECONDS));

//高亮

HighlightBuilder highlightBuilder = new HighlightBuilder();

highlightBuilder.field("title");

highlightBuilder.preTags("");

highlightBuilder.postTags("");

//设置关键字高亮一次

highlightBuilder.requireFieldMatch(false);

sourceBuilder.highlighter(highlightBuilder);

//执行搜索

searchRequest.source(sourceBuilder);

SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);

//解析结果

ArrayList> list = new ArrayList>();

for (SearchHit hit : searchResponse.getHits().getHits()) {

//解析高亮

Map highlightFields = hit.getHighlightFields();

HighlightField title = highlightFields.get("title");

//将原来的字段替换为高亮的字段设置

Map sourceAsMap = hit.getSourceAsMap();

if (title!=null){

Text[] fragments = title.fragments();

String temValue = "";

for (Text fragment : fragments) {

temValue+=fragment;

}

sourceAsMap.put("title",temValue);//替换

}

list.add(sourceAsMap);

}

return list;

}

复制代码

前端页面解析返回的HTML即可

复制代码

http://www.lbrq.cn/news/2454553.html

相关文章:

  • vivo手机商城免费检测网站seo
  • 多种昆明网站建设苏州企业网站关键词优化
  • 模板王网站怎么下载不了模板沈阳seo优化新势力
  • wordpress主题推荐提升网页优化排名
  • 宁波网页设计制作公司seo关键词有话要多少钱
  • 河北住房和城乡建设局网站碉堡了seo博客
  • 电商网站开发的现状湖南网站建设营销推广
  • 洛阳网红打卡地冯耀宗seo教程
  • 怎么建设淘客自己的网站_手机优化大师官网
  • 泰安房产最新出售信息seo网站自动发布外链工具
  • 网站建设网络工作室搜索引擎营销的实现方法
  • 帮人做彩票网站广州seo顾问seocnm
  • o2o网站建设效果企业宣传推广怎么做
  • 网站建设立项申请书百度注册
  • 网上服装商城网站建设方案策划书seo快排公司哪家好
  • 58同城建设网站北京做的好的seo公司
  • 网站开发用到的编程网页优化seo广州
  • 大型租车门户网站商业版源码发布软文广告
  • 网站后台登录代码优化什么
  • 贵港网站开发视频号视频下载助手app
  • 花生壳做网站看网站时的关键词
  • 网站建设公司 2018网络营销推广机构
  • 河南企业做网站网站百度收录
  • 深圳民治做网站黄石seo诊断
  • 广东省住房城乡建设部网站北京网站优化步骤
  • dw做网站教程今日军事头条新闻
  • 凡客做网站手机访问另一部手机访问文件
  • 北海做网站有哪家好最新今日头条
  • 从事网站建设的工资百度app下载安装普通下载
  • 专业制作存单昆明seo案例
  • vue 脚手架配置代理
  • 深度解析 noisereduce:开源音频降噪库实践
  • 详解力扣高频SQL50题之1193. 每月交易 I【简单】
  • HTML 常用标签速查表
  • [Rust 基础课程]猜数字游戏-获取用户输入并打印
  • 【国内电子数据取证厂商龙信科技】谁是躲在“向日葵”后的