抓图片

某君有个不良癖好, 喜欢对着H漫鲁. 某天发现一个非常好的漫. 省略20字. 事后他想, 这么好的东西 我怎么都弄到手呢, 想起下图片用过整站下载器 . 还行不是太好. 突然头上冒出一个电灯泡. 自己做个下载器. 
说干就干. 网上搞到了这样几行代码:
try {  
URL url = new URL("http://www.xxx.xxx/xx");  
 BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            String line;  
            while ((line = reader.readLine()) != null) { 
            System.out.println();
     }
            reader.close(); 
        } catch (MalformedURLException e) { 
            // ... 
        } catch (IOException e) { 
            // ... 
        }
可以, 不错 搞到了这个:
褰撳墠浣嶇疆: 涓婚〉 >
乱码. 好的读的时候要指定编码. 
改进一下:
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8"));

搞到了html . 然后就是对html的解析了. 
发现很简单. 图片的标签在一起且很好拿. indexof一下就取到了. 标题也很好拿. 
ok . 然后就是字符串操作了. 听无聊的. 自己写了个函数
public String StrBetween(String str,String str1,String str2){
return str.substring(str.indexOf(str1)+str1.length(),str.indexOf(str2));
}
返回两个字符串之间的东西. 

图片是好多个的. 要弄个数组. 简单因为是这样的:
r /> 抓图片

抓图片

所以String[] picpath = line.split("\" border=\"0\" />
最后第一个元素和最后一个简单处理一下
picpath[0] = picpath[0].substring("
picpath[picpath.length-1] = picpath[picpath.length-1].substring(0,picpath[picpath.length-1].length()-"\" border=\"0\" />
".length());

OK.

请求下图片就好了, 然后存起来
在使用 Fiddler 图片时,若遇到显示乱码的问题,通常与响应内容的编码方式有关。Fiddler 默认会对某些类型的响应进行自动解码,但对二进制数据(如图片)处理不当可能导致乱码。以下是几种有效的解决方法: ### 1. 手动解码响应内容 如果响应内容被 GZIP 或其他压缩算法压缩,可以尝试手动解压: - 在 Fiddler 的会话列表中选择目标请求; - 点击右侧 "Response" 标签页下的 "Raw" 子标签; - 如果看到提示 “Response is encoded and may need to be decoded before inspection. Click here to transform”,请点击该提示,Fiddler 将自动解码响应内容,使其以原始格式显示 [^2]。 ### 2. 修改 FiddlerScript 避免 WebSocket 压缩干扰 虽然此问题主要针对 WebSocket 接口包时的乱码,但如果在同一环境中同时进行 WebSocket 和 HTTP 图片资源取,也可考虑调整以下设置以避免潜在干扰: - 打开 Fiddler,进入菜单栏的 `Rules > Customize Rules...`; - 在打开的脚本编辑器中找到 `OnBeforeRequest` 函数; - 添加如下代码片段,移除可能引起压缩问题的请求头字段: ```javascript if (oSession.RequestHeaders.ExistsAndContains("Sec-WebSocket-Extensions", "permessage-deflate")) { oSession.RequestHeaders.Remove("Sec-WebSocket-Extensions"); } ``` 此操作有助于避免因 WebSocket 协议扩展导致的数据解析异常 [^1]。 ### 3. 使用自定义脚本记录 WebSocket 消息 对于 WebSocket 通信中的二进制消息(例如图片),可以通过修改 FiddlerScript 来实现更清晰的消息记录: - 在 `class Handlers` 中添加如下函数: ```javascript static function OnWebSocketMessage(oMsg: WebSocketMessage) { // Log Message to the LOG tab FiddlerApplication.Log.LogString(oMsg.ToString()); } ``` 这样可以在日志面板中查看 WebSocket 消息的基本信息,尽管不直接用于显示图片,但有助于调试和确认消息是否正确接收 [^3]。 ### 4. 检查 Fiddler 设置与网络环境 确保 Fiddler 的捕获设置没有错误地应用了不必要的转换规则,并检查网络环境是否存在额外的代理或加密层,这些都可能影响到图片等二进制资源的正确传输与展示。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值