使用Java/Jsoup进行Web抓取
我试图从GlassDoor那里获得平均工资。 这是HTML代码的位置:使用Java/Jsoup进行Web抓取,java,html,web-scraping,jsoup,Java,Html,Web Scraping,Jsoup,我试图从GlassDoor那里获得平均工资。 这是HTML代码的位置: <span class="OccMedianBasePayStyle__payNumber" data-test="AveragePay">$118,034</span> 您没有使用正确的选择器。您应该通过数据测试=“AveragePay”,测试范围为 将选择器和for循环更改为此,它基本上只选择具有span[data test=“AveragePay”]的元素 注:我希望这只是出于教育目的。网络抓
<span class="OccMedianBasePayStyle__payNumber" data-test="AveragePay">$118,034</span>
您没有使用正确的选择器。您应该通过数据测试=“AveragePay”,测试范围为 将选择器和for循环更改为此,它基本上只选择具有span[data test=“AveragePay”]的元素
注:我希望这只是出于教育目的。网络抓取有一些法律限制。在将其用于任何商业用途之前,您需要检查目标站点的条款和条件。您到底有什么问题?我的输出只是输出值,我不知道如何精确定位我想要的值。我希望能够输出“data test=”AveragePay的值“我昨天开始抓网,所以我可能走错了方向。我只是不知道如何从我想要的特定点提取数据。当我尝试这样做时,什么都没有输出。还有什么遗漏吗?我不确定。我尝试了相同的代码与链接和它的工作良好。我正在粘贴完整的代码。我让它工作了,我不得不去掉“AveragePay”周围的符号
public class Trans {
public static void main(String[] args) {
String url = "https://www.glassdoor.com/Salaries/seattle-software-engineer-salary-SRCH_IL.0,7_IM781_KO8,25.htm";
Document document = null;
try {
document = Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
//a with href
Elements links = document.select("span");
for (Element link : links) {
System.out.println("Text: " + link.getElementsByAttributeValueContaining("data-test", "Average"));
//System.out.println("Text: " + link.text());
}
public static void main(String[] args) {
String url = "https://www.glassdoor.com/Salaries/seattle-software-engineer-salary-SRCH_IL.0,7_IM781_KO8,25.htm";
Document document = null;
try {
document = Jsoup.connect(url).get();
} catch (IOException e) {
e.printStackTrace();
}
//a with href
Elements links = document.select("span[data-test='AveragePay']");
for (Element link : links) {
System.out.println("Text: " + link.text());
}
}