日期:2014-05-17  浏览次数:20645 次

自动下载HTML中的非本地图片,并替换内容

转载的时候,文章中有图片,但是因为很多网站会做防盗链处理,使得在阅读文章时图片无法显示。
解决的办法,发文章时程序自动解析出文章中所有的图片,并下载到本地,然后将图片的URL地址改为本地地址。

下面是详细代码:
?

折叠?Java 代码复制内容到剪贴板
  1. package?net.oschina.utils; ??
  2. ??
  3. import?java.io.File; ??
  4. import?java.io.FileOutputStream; ??
  5. import?java.io.IOException; ??
  6. import?java.io.InputStream; ??
  7. import?java.net.HttpURLConnection; ??
  8. import?java.net.MalformedURLException; ??
  9. import?java.net.URL; ??
  10. import?java.text.SimpleDateFormat; ??
  11. import?java.util.Date; ??
  12. import?java.util.HashMap; ??
  13. ??
  14. import?org.apache.commons.io.FilenameUtils; ??
  15. import?org.apache.commons.io.IOUtils; ??
  16. import?org.apache.commons.lang.RandomStringUtils; ??
  17. import?org.apache.commons.lang.StringUtils; ??
  18. import?org.jsoup.Jsoup; ??
  19. import?org.jsoup.nodes.Document; ??
  20. import?org.jsoup.nodes.Element; ??
  21. import?org.jsoup.select.Elements; ??
  22. ??
  23. import?my.mvc.BadWord; ??
  24. import?my.mvc.BlockIP; ??
  25. import?my.mvc.RequestContext; ??
  26. import?my.util.Multimedia; ??
  27. ??
  28. /** ?
  29. ?*?Action类常用工具 ?
  30. ?*?@author?Winter?Lau?@?OSChina ?
  31. ?*/??
  32. public?class?HTMLImageFetcher{ ??
  33. ??
  34. ????public?static?void?main(String[]?args)?{ ??
  35. ????????String?html?=?"这张图片很漂亮啊!"+ ??
  36. ????????????"<img?src='http://techcn.com.cn/uploads/201004/12705551313uy0urE3.jpg'?alt=''/>"+ ??
  37. ????????????"?,太帅了!<img?src='/img/logo.gif'?alt='oschina'/>"; ??
  38. ????????System.out.println(fetchHTML_Images(html)); ??
  39. ????} ??
  40. ???? ??