|
3 | 3 | import com.alibaba.fastjson.JSON;
|
4 | 4 | import com.alibaba.fastjson.JSONArray;
|
5 | 5 | import com.alibaba.fastjson.JSONObject;
|
| 6 | +import com.google.gson.JsonObject; |
6 | 7 | import com.hiroshi.cimoc.model.Chapter;
|
7 | 8 | import com.hiroshi.cimoc.model.Comic;
|
8 | 9 | import com.hiroshi.cimoc.model.ImageUrl;
|
@@ -71,7 +72,7 @@ public SearchIterator getSearchIterator(String html, int page) {
|
71 | 72 | protected Comic parse(Node node) {
|
72 | 73 | String cid = node.hrefWithSplit(1);
|
73 | 74 | String title = node.attr("title");
|
74 |
| - String cover = node.attr("img", "src"); |
| 75 | + String cover = node.attr("img", "data-original"); |
75 | 76 | return new Comic(TYPE, cid, title, cover, null, null);
|
76 | 77 | }
|
77 | 78 | };
|
@@ -120,31 +121,26 @@ public Request getImagesRequest(String cid, String path) {
|
120 | 121 | @Override
|
121 | 122 | public List<ImageUrl> parseImages(String html) {
|
122 | 123 | List<ImageUrl> list = new ArrayList<>();
|
123 |
| - Document document = Jsoup.parse(html); |
124 | 124 |
|
125 |
| - //获取页面定义的图片host和pre |
126 |
| - Element urlDefine = document.select(".vg-r-data").first(); |
127 |
| - String imageHost = urlDefine.attr("data-host").trim(); |
128 |
| - String imagePre = urlDefine.attr("data-img_pre").trim(); |
129 |
| - |
130 |
| - //获取页面定义的图片信息变量img_data |
131 |
| - String imageArrDataDefine = document.getElementsByTag("script").eq(7).first().html(); |
132 |
| - imageArrDataDefine = imageArrDataDefine.substring(16, imageArrDataDefine.length() - 2); |
133 |
| - //进行base64转换 |
134 | 125 | try {
|
135 |
| - imageArrDataDefine = DecryptionUtils.base64Decrypt(imageArrDataDefine); |
| 126 | + final String imageHost = StringUtils.match("data-host=\"(.*?)\"", html, 1); |
| 127 | + final String imagePre = StringUtils.match("data-img_pre=\"(.*?)\"", html, 1); |
| 128 | + final String base64Data = StringUtils.match("var img_data = '(.*?)';", html, 1); |
| 129 | + final String jsonStr = DecryptionUtils.base64Decrypt(base64Data); |
| 130 | + final JSONArray imageList = JSON.parseArray(jsonStr); |
| 131 | + |
| 132 | + for(int i = 0; i < imageList.size(); i++ ) { |
| 133 | + final JSONObject image = imageList.getJSONObject(i); |
| 134 | + |
| 135 | + final String imageUrl = imageHost + imagePre + image.getString("img"); |
| 136 | + |
| 137 | + list.add(new ImageUrl(image.getIntValue("p"), imageUrl, false)); |
| 138 | + } |
| 139 | + |
136 | 140 | } catch (Exception e) {
|
137 | 141 | e.printStackTrace();
|
138 |
| - return list; |
139 | 142 | }
|
140 | 143 |
|
141 |
| - JSONArray imageList = JSON.parseArray(imageArrDataDefine); |
142 |
| - JSONObject image; |
143 |
| - int total = imageList.size(); |
144 |
| - for (int i = 0; i < total; i++) { |
145 |
| - image = imageList.getJSONObject(i); |
146 |
| - list.add(new ImageUrl(image.getIntValue("p"), imageHost + imagePre + image.getString("img"), false)); |
147 |
| - } |
148 | 144 | return list;
|
149 | 145 | }
|
150 | 146 |
|
|
0 commit comments