Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web爬网类隐藏字段_Java_Jsoup_Hidden Field - Fatal编程技术网

Java Web爬网类隐藏字段

Java Web爬网类隐藏字段,java,jsoup,hidden-field,Java,Jsoup,Hidden Field,我是新来的。在使用我的爬虫测试了几个网站后,我发现了以下几点: <div class="originalCurrencyInformation"> <label class="Hidden original-price">Price: £500</label> 更新 我尝试了Label.Hidden original price和Label.Hidden.original-price,但该值返回null

我是新来的。在使用我的爬虫测试了几个网站后,我发现了以下几点:

<div class="originalCurrencyInformation">                            
<label class="Hidden original-price">Price: £500</label>
更新

我尝试了Label.Hidden original price和Label.Hidden.original-price,但该值返回null,这就是我得到的结果在您的示例中,原始价格不在div中,因此不清楚为什么要查找div.original-price。您可以使用:

doc.selectdiv.originalCurrencyInformation>label.Hidden.original-price

选择同时具有隐藏和原始价格类别的标签

然后,您可以使用:

tag.text


仅从元素中获取文本。

您似乎已经有了解析html/xml的方法。class=Bla只是一个类名,主要用于处理css样式表或作为JavaScript的标识符。它只是一个名称。不要将它与style=visibility:hidden或type=hiddenI混淆。我尝试过label.hidden.original-price,但当我使用.html或textforry my bad时,它返回null。仔细检查后,网站会更改不同页面的定价标签。看起来我需要找到属性值,看看它是否包含price,然后打印html。我确信Oncaphillis是正确的,类是否隐藏在它里面并不重要。如果标记不同,您可以使用.hidden.original-price来匹配任何具有这些类名的元素,或者如果您不关心隐藏,则使用.original-price。@Alex我刚刚用JSoup 1.8.1进行了一次测试,但没有用.text返回null,但这可能只是因为你上面提到的标签的变化。
Document doc = Jsoup.connect("http://www.example.org")
                            .timeout(3000).get();
    Elements tags = doc.select("div.originalCurrencyInformation > Label.original-price");
    for(Element tag: tags){
                   System.out.println(tag);
    }