簡體   English   中英

使用Java / Jsoup進行Web爬取

[英]Web Scraping with Java/Jsoup

我正在嘗試從GlassDoor中提取平均工資。 這是HTML代碼所在的位置:

<span class="OccMedianBasePayStyle__payNumber" data-test="AveragePay">$118,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()); 
        }

您沒有使用正確的選擇器。 您應該將span傳遞給data-test =“ AveragePay”。

將您的選擇器和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爬網具有一些法律限制。 在將其用於任何商業目的之前,您需要檢查目標站點的條款和條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM