用java匹配和替换超链接

时间:2013-10-16 10:57:18

标签: java regex html-parsing web-scraping

我正在使用缓冲的阅读器来浏览HTML文件&必须用新路径替换任何img文件的完整URL。

例如,我正在处理的一个文件有3个新路径可供查找。我已将它们声明为最终变量:

public static final String x_TAG="https://newsite.com/media/x.jpg";
public static final String y_TAG="https://newsite.com/media/y.jpg";
public static final String z_TAG="https://newsite.com/media/z.jpg";

现在我可以阅读文件&模式匹配它们在文件中的位置:

Pattern imgPattern = Pattern.compile("(<\\s*img\\s*alt\\s*=\\s*\").*?(\"\\s*>)");
Matcher imgMatcher = imgPattern.matcher(replaceAllTags);

while(imgMatcher.find()) {
    System.err.println("match at "+imgMatcher.group());
}

打印回来:

match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/x.jpg" src="cc_files/Images_003.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/x.jpg" width="600">


match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/y.jpg" src="cc_files/Images_004.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/y.jpg" width="600">


match at <img alt="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/z.jpg" src="cc_files/Images.jpg" title="/oldSite.com/Images?action=AttachFile&amp;do=get&amp;target=Images/z.jpg" width="600">**

那么找到&amp;的最佳方式是什么?为每个图像添加新的URL?

1 个答案:

答案 0 :(得分:0)

另一个人试图将屏幕刮擦与正则表达式相匹配。 :-)我不是说它是可能的,但另一种方法是使用像jsoup https://stackoverflow.com/a/6042593/81520这样的html解析器或其他类似的库来解析你读入的HTML。然后对于每个IMG标记,编辑SRC属性。 / p>