进入软件后点击最下面的行情,在新的页面中点击中间精选版块最右边的更多,要求提供新页面 精选,行业,概念,地区的数据请求(http://)及返回的数据格式,谢谢。
软件下载地址:https://www.kaipanla.com
抓取某软件数据请求及返回的数据格式
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- dabocaiqq 2020-02-02 19:31关注
public class GetStockList { // 起始页码 private static final int page = 166; private static final String USER_AGENT = "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36"; private static final String COOKIE = "_gat=1; nsfw-click-load=off; gif-click-load=on;" + " _ga=GA1.2.1861846600.1423061484"; public static void main(String[] args) { // HttpClient 超时配置 RequestConfig globalConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD) .setConnectionRequestTimeout(6000).setConnectTimeout(6000).build(); CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(globalConfig).build(); String url = "http://www.yz21.org/stock/info/"; String urlToReq = ""; StockProxy dao = StockProxy.getInstance(); try { for (int i = 1; i <= page; i++) { // 创建一个GET请求 String strParams = "/stocklist_" + i + ".html"; if (i == 1) { strParams = ""; } urlToReq = url + strParams; // 停留一秒后开始任务 Thread.sleep(1000); // 发送请求,并执行 String htmlForStock = HttpHelper.getHtmlStrByUrl(urlToReq, httpClient, COOKIE, USER_AGENT); if (!htmlForStock.contains("找不到文件或目录")) { // 网页内容解析 System.out.println("该网页存在,正在解析:" + urlToReq); Document doc = Jsoup.parse(htmlForStock); // 获取table表的行集合元素 Elements trs = doc.getElementById("All_stocks1_DataGrid1").select("tr"); SharePo sharePo = new SharePo(); for (int j = 1; j < trs.size(); j++) { Elements tds = trs.get(j).select("td"); sharePo = new SharePo(); Element link = tds.get(1).select("a").first(); String relHref = link.attr("href"); String strtype = ""; if (relHref.contains("sh")) { strtype = "sh"; } else if (relHref.contains("sz")) { strtype = "sz"; } // 股票代码 sharePo.setSharecode(strtype + tds.get(1).text()); // 股票简称 sharePo.setSharename(tds.get(2).text()); // 公司名称 sharePo.setCompanyname(tds.get(3).text()); // 股票简称拼音 sharePo.setCompanyshort(tds.get(4).text()); dao.addShare(sharePo); } } else { System.out.println("该网页不存在:" + urlToReq); break; } } } catch (Exception e) { e.printStackTrace(); } } } public class HttpHelper { public static String getHtmlStrByUrl(String url, CloseableHttpClient httpClient, String COOKIE, String USER_AGENT) { HttpGet httpGetForFName = new HttpGet(url); httpGetForFName.addHeader("User-Agent", USER_AGENT); httpGetForFName.addHeader("Cookie", COOKIE); httpGetForFName.addHeader("Content-Type", "text/html;charset=UTF-8"); // 发送请求,并执行 CloseableHttpResponse response; String html = ""; try { response = httpClient.execute(httpGetForFName); InputStream in = response.getEntity().getContent(); html = Utils.convertStreamToString(in); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return html; } } public class StreamUtils { public static String convertStreamToString(InputStream in) { StringBuilder sb = new StringBuilder(); try { InputStreamReader isr = new InputStreamReader(in, "UTF-8"); BufferedReader reader = new BufferedReader(isr); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "/n"); } } catch (Exception e) { e.printStackTrace(); } finally { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } } public class SharePo { private Long shareid; private String companyname; private String companyshort; private String sharecode; private String sharename; private Double todaybeginprice; private Double yesterdaycloseprice; private Double nowprice; private Double highprice; private Double lowprice; /**在此省略get/set方法**/ }
可以参考以上代码
采纳后可以按照你的要求写一个
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!