有没有一种有效的方法来优化这段代码,因为它的大部分看起来都是相同的,我刚刚开始学习jsoup,不知道如何真正做到这一点://
Document doc = Jsoup.connect("http://www.blocket.se/hela_sverige/bilar?ca=11&cg=1020&w=3&md=th").get();
Elements partOne = doc.select("a[title=Flera bilder]");
for (Element element : partOne) {
String myElementOne = element.attr("abs:href");
System.out.println(myElementOne);
}
Elements partTwo = doc.select("a[title=\"\"]");
for (Element element : partTwo) {
String myElementTwo = element.attr("abs:href");
System.out.println(myElementTwo);
}
Elements partThree = doc.select("a[title=Bild]");
for (Element element : partThree) {
String myElementThree = element.attr("abs:href");
System.out.println(myElementThree);
}
最佳答案
partOne
、partTwo
和 partThree
block 基本相同;只需用变量替换所有参数差异并提取到方法:
void someMethodName(Document doc, String selector) {
Elements partOne = doc.select(selector);
for (Element element : partOne) {
String myElementOne = element.attr("abs:href");
System.out.println(myElementOne);
}
}
调用示例:
someMethodName(doc, "a[title=Flera bilder]");
或者,如果您有权访问 Guava:
Iterable<Element> it = Iterables.concat(
doc.select("a[title=Flera bilder]"),
doc.select("a[title=\"\"]"),
doc.select("a[title=Bild]"));
for (Element element : it) {
String myElement = element.attr("abs:href");
System.out.println(myElement);
}
关于Java代码优化(jsoup),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35480730/