diff --git a/src/main/java/cn/stock/market/infrastructure/job/MoneyScraper.java b/src/main/java/cn/stock/market/infrastructure/job/MoneyScraper.java index e4ba798..dec0321 100644 --- a/src/main/java/cn/stock/market/infrastructure/job/MoneyScraper.java +++ b/src/main/java/cn/stock/market/infrastructure/job/MoneyScraper.java @@ -92,6 +92,47 @@ public class MoneyScraper { } + @GetMapping("testScraperGetMoneyControlStockNoScId") + public String testScraperGetMoneyControlStockNoScId() { + String url = "http://www.moneycontrol.com/india/stockpricequote/foodprocessing/nestleindia/NI"; + /* Document soup2 = fetchCompanyDetails(url); + + if (soup2 != null) { + Element comIdInput = soup2.selectFirst("input[id=ap_sc_id]"); + String companyCodeId = null; + if (comIdInput != null) { + companyCodeId = comIdInput.val(); + log.info(Thread.currentThread().getName() + ",the stock url: " + url + ", THE input id: " + companyCodeId); + } else { + log.error(Thread.currentThread().getName() + " No with id='ap_sc_id' found on the website."); + } + + if (soup2 != null) { + Element ulElement = soup2.selectFirst("ul[id=nseBseTab]"); + + if (ulElement != null) { + for (Element aElement : ulElement.select("a")) { + String exchangeValue = aElement.text().trim(); + if ("BSE".equals(exchangeValue) || "NSE".equals(exchangeValue)) { + log.info(Thread.currentThread().getName() + ",the stock url: " + url + + ", the exchange Value: " + exchangeValue); + MoneyStock build = MoneyStock.builder().stockName("sss").stockType(exchangeValue.toLowerCase(Locale.ROOT)) + .detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId)) + .selfUrl(url) + .selfDispId(extractDispId(url)) + .moneyScId(companyCodeId).saveTime(new Date()).build(); + List all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq("Nestle"), QMoneyStockPO.moneyStockPO.stockType.eq(exchangeValue.toLowerCase(Locale.ROOT))); + if (CollectionUtil.isEmpty(all)) { + moneyStockRepository.save(build); + } + } + } + } + } + }*/ + return "ok"; + } + /** * 带有A B 分组的url @@ -132,8 +173,7 @@ public class MoneyScraper { break; // 如果成功则跳出循环 } catch (IOException | RuntimeException e) { // 处理异常的逻辑 - e.printStackTrace(); - log.error("Attempt " + attempt + " failed. Retrying..."); + log.error("Attempt " + attempt + " failed. Retrying...",e); attempt++; try { Thread.sleep(1000); // 休眠1秒 @@ -207,7 +247,7 @@ public class MoneyScraper { if (soup2 != null) { Element comIdInput = soup2.selectFirst("input[id=ap_sc_id]"); - String companyCodeId = ""; + String companyCodeId = null; if (comIdInput != null) { companyCodeId = comIdInput.val(); log.info(Thread.currentThread().getName()+",the stockName: " + textContent + ", THE input id: " + companyCodeId);