diff --git a/src/main/java/cn/stock/market/domain/basic/service/StockService.java b/src/main/java/cn/stock/market/domain/basic/service/StockService.java index e8885f5..954bc32 100644 --- a/src/main/java/cn/stock/market/domain/basic/service/StockService.java +++ b/src/main/java/cn/stock/market/domain/basic/service/StockService.java @@ -30,6 +30,8 @@ import org.apache.commons.lang3.StringUtils; import cn.stock.market.infrastructure.db.po.QStockPO; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.http.HttpEntity; @@ -252,7 +254,13 @@ public class StockService { .header("Referer", "https://www.business-standard.com/") .header("Accept-Language", "en-US,en;q=0.9") .get(); - result = doc.html().substring(doc.html().indexOf("
"),doc.html().lastIndexOf("
")+1200); + // result = doc.html().substring(doc.html().indexOf("
"),doc.html().lastIndexOf("
")+500); + Elements divElements = doc.select("div.listingstyle_cardlistlist__Cr4Ym"); + StringBuilder sb = new StringBuilder(); + for (Element divElement : divElements) { + sb.append(divElement.outerHtml()).append("\n"); + } + result = sb.toString(); } catch (Exception e) { return e.toString(); } diff --git a/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java b/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java index 57af80e..5e0752d 100644 --- a/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java +++ b/src/main/java/cn/stock/market/infrastructure/job/InvestingTask.java @@ -25,6 +25,8 @@ import java.util.Date; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @Slf4j @Component @@ -119,7 +121,14 @@ public class InvestingTask { String contentUrl = n.substring(1, n.indexOf("class=\"img-smllnews\"") - 2); String id = contentUrl.substring(contentUrl.lastIndexOf("-") + 1, contentUrl.lastIndexOf("_")); String imgUrl = n.substring(n.indexOf("img loading=\"lazy\" src=") + 24, n.indexOf("?")); - String time = n.substring(n.indexOf("Last Updated") + 23, n.indexOf("IST") - 9); +// String time = n.substring(n.indexOf("Last Updated") + 23, n.indexOf("IST") - 9); + // Extract the date and time using regex + Pattern pattern = Pattern.compile("Updated On : (.*?)"); + Matcher matcher = pattern.matcher(n); + String time = ""; + if (matcher.find()) { + time = matcher.group(1).trim(); + } SiteNews siteNews = new SiteNews(); siteNews.setAddTime(new Date()); diff --git a/src/main/java/cn/stock/market/web/BTodayStockController.java b/src/main/java/cn/stock/market/web/BTodayStockController.java index 1692773..457a391 100644 --- a/src/main/java/cn/stock/market/web/BTodayStockController.java +++ b/src/main/java/cn/stock/market/web/BTodayStockController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.List; import java.util.Map; @@ -159,6 +160,19 @@ public class BTodayStockController { String forObject = restTemplate.getForObject(apiUrl, String.class); JSONObject jsonObject = JSON.parseObject(forObject); + JSONArray arryData = jsonObject.getJSONArray("data"); + if (arryData != null&&arryData.size()>0) { + try { + JSONObject jsonObject1 = arryData.getJSONObject(0); + String price = jsonObject1.getString("price"); + double priceValue = Double.parseDouble(price); + DecimalFormat df = new DecimalFormat("0.00"); + jsonObject1.put("price", df.format(priceValue)); + } catch (NumberFormatException e) { + // Handle the case where price is not a valid double + e.printStackTrace(); + } + } jsonObject.put("id",btodayStock.getId()); return jsonObject; } diff --git a/src/main/java/cn/stock/market/web/StockApiController.java b/src/main/java/cn/stock/market/web/StockApiController.java index eb697ab..a65e504 100644 --- a/src/main/java/cn/stock/market/web/StockApiController.java +++ b/src/main/java/cn/stock/market/web/StockApiController.java @@ -3,6 +3,8 @@ package cn.stock.market.web; import java.io.IOException; import java.util.*; import java.util.concurrent.ExecutionException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -169,7 +171,7 @@ public class StockApiController { @RequestMapping({"test.do"}) @ResponseBody - public ServerResponse test(@RequestParam("url") String url, @RequestParam("pageNum") Integer pageNum) { + public ServerResponse test(/*@RequestParam("url") String url, @RequestParam("pageNum") Integer pageNum*/) { String news = stockService.getNews(); List newsList = Arrays.asList(news.split(" (.*?)"); + Matcher matcher = pattern.matcher(n); + String time = ""; + if (matcher.find()) { + time = matcher.group(1).trim(); + } SiteNews siteNews = new SiteNews(); siteNews.setAddTime(new Date());