lantern45
后端
·2023-04-23
项目 聚合搜索平台项目扩展 聚合搜索平台扩展增加 了视频搜索功能。具体代码是参照鱼皮的图片搜索功能进行修改的。 视频功能需要获取的几个参数:1.视频名,2.视频缩略图(方便前端展示)3. 视频原本地址 前端的话就是在页面上显示视频名和视频缩略图,在点击缩略图后则可以跳转到相应的视频网址上。 代码如下: @Override public Page<Video> doSearch(String searchText, long pageNum, long pageSize) { long current=(pageNum-1) * pageSize; String url=String.format("https://cn.bing.com/videos/search?q=%s&first=%s",searchText,current); Document doc = null; try { doc = Jsoup.connect(url).get(); } catch (IOException e) { throw new BusinessException(ErrorCode.SYSTEM_ERROR,"数据获取异常!"); } Elements newsHeadlines = doc.select(".mc_vtvc.b_canvas.isv "); List<Video> videos =new ArrayList<>(); for (Element element : newsHeadlines) { // 取视频地址 String vUrl=element.select(".mc_vtvc.b_canvas.isv").select("a").attr("href"); String title=element.select(".rms_iac").attr("data-alt"); String imageUrl= element.select(".rms_iac").attr("data-src"); Video video=new Video(); video.setTitle(title); video.setUrl(imageUrl); video.setVUrl(vUrl); videos.add(video); // 检查视频URL是否可访问 if(isUrlAccessible(vUrl)){ video.setVUrl(vUrl); videos.add(video); if(videos.size()>=pageSize){ break; } } } Page<Video> videoPage=new Page<>(pageNum,pageSize); videoPage.setRecords(videos); return videoPage; } // 检查视频URL是否可访问 private boolean isUrlAccessible(String urlStr) { try { URL url = new URL(urlStr); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); return (responseCode == HttpURLConnection.HTTP_OK); } catch (Exception e) { return false; } } } 建议:看完皮哥第三期视频在来看本贴。图片搜索功能在第二期52分钟30秒的时候介绍的。 在前端展示图片的时候发现图片不能正常显示,但直接访问图片网址确实正常的,可以在前端展示图片的标签上增加referrerPolicy="no-referrer"属性就可以正常展示了。 同时像过滤掉404图片可以参展上述代码的过滤实现,这里就不详细描述了。
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP