使用 Java/Jsoup 进行网页抓取
Web Scraping with Java/Jsoup
我正在尝试从 GlassDoor 中提取平均工资。
这是 HTML 代码所在的位置:
<span class="OccMedianBasePayStyle__payNumber" data-test="AveragePay">8,034</span>
这是我目前所拥有的..
此代码输出我想要的行,但我不知道如何从 data-test="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());
}
您没有使用正确的选择器。你应该通过 data-test="AveragePay" 和 span.
将您的选择器和 for 循环更改为此,它基本上只选择具有 span[data-test="AveragePay"]
的元素
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());
}
}
注意:我希望这仅用于教育目的。 Web Scraping 有一些法律限制。在将其用于任何商业目的之前,您需要检查目标站点的条款和条件。
我正在尝试从 GlassDoor 中提取平均工资。 这是 HTML 代码所在的位置:
<span class="OccMedianBasePayStyle__payNumber" data-test="AveragePay">8,034</span>
这是我目前所拥有的.. 此代码输出我想要的行,但我不知道如何从 data-test="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());
}
您没有使用正确的选择器。你应该通过 data-test="AveragePay" 和 span.
将您的选择器和 for 循环更改为此,它基本上只选择具有 span[data-test="AveragePay"]
的元素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());
}
}
注意:我希望这仅用于教育目的。 Web Scraping 有一些法律限制。在将其用于任何商业目的之前,您需要检查目标站点的条款和条件。