gpt4 book ai didi

java - Jsoup 尝试测试 javascript 链接

转载 作者:行者123 更新时间:2023-12-01 15:22:58 26 4
gpt4 key购买 nike

我使用 JSoup 解析网页中的所有链接,然后测试这些收集的链接的响应代码。

我遇到的问题是我正在测试的某些页面具有使用以下方式打开 javascript 弹出窗口的链接: 。我确信有一个简单的方法可以避免选择此链接,但我无法再思考了!

我的代码:

PingUrls(String pageUrl) {
url = pageUrl;
int i = 0;
int retries = 3;

while (i < retries){
try {
response = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
.timeout(10000)
.execute();
success = true;
break;
} catch (IOException e) {
}
System.out.println("Attempt "+i);
i++;
}
}

public int getUrlStatus(){
if(success){
int statusCode = response.statusCode();
return statusCode;
}else {
return 404;
}
}

public ArrayList<String> getLinks(String targetValue){
ArrayList<String> urls = new ArrayList<String>();
try {
Document doc = response.parse();

Elements element = doc.select(targetValue+" a[href]");
for (Element page : element){
urls.add(page.attr("abs:href"));
}
return urls;
} catch (IOException e) {
System.out.println(e);
return null;
}
}

最佳答案

首先,我建议使用集合而不是列表。 (如果您不熟悉集合,集合将确保没有重复的元素)

另外,我会添加一个像manageURL(String url);这样的方法。在将其添加到集合之前。对它进行一些测试,以确保它按照您想要的方式爬行。比如测试 url 的绝对路径、规范路径,并确保它是 http 或 https 协议(protocol)的。

关于java - Jsoup 尝试测试 javascript 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com