如何解决无法在网页抓取中选择类标签的内容
我正在学习使用 JSOUP 的网络抓取,并且我一直在尝试检索类标记 sc-fzqBZW sc-fzoyAV eGbWXV
的数据。我试过用点替换空格,但似乎没有任何效果。我附上了下面的代码块。如果有人指出我的错误并为我改正,我将非常感激。
这是一行:
"
public static void main(String[] args) throws Exception {
System.out.println("Loading Scraper!");
final String url = "https://apidocs.temenos.com/service/account-management#operation/getAccountClosure";
Document doc;
try {
doc = Jsoup.connect(url).get();
String title = doc.title();
System.out.println("Title: " + title);
org.jsoup.select.Elements elements = doc.select("sc-fzqBZW.sc-fzoyAV.eGbWXV");
//original class tag = sc-fzqBZW sc-fzoyAV eGbWXV
for (Element element : elements) {
System.out.println("Ticker:" + element.text());
}
} catch (Exception ex) {
System.out.println("Error in establising connection. /n" + "Error: " + ex);
}
}
3 个答案:
答案 0 :(得分:0)
根据此处的文档https://jsoup.org/cookbook/extracting-data/selector-syntax
你可以尝试一下
doc.select("td.sc-fzqBZW sc-fzoyAV eGbWXV");
答案 1 :(得分:0)
您的选择器 <select id="select"></select>
<script>
const greetings = {
"af" : "Hallo (Afrikaans)","af_NA" : "Hallo (Afrikaans - Namibia)","af_ZA" : "Hallo (Afrikaans - South Afica)","as" : "হ্যালো (Assamese)","as_IN" : "হ্যালো (Assamese - India)",}
const select = document.querySelector('#select');
Object.keys(greetings).forEach(language => {
const option = document.createElement('option');
option.value = language;
option.innerHTML = greetings[language]
select.appendChild(option);
})
</script>
在开头缺少点以表示 sc-fzqBZW.sc-fzoyAV.eGbWXV
是一个类。现在它将匹配这样的元素:
sc-fzqBZW
使用<sc-fzqBZW class="sc-fzoyAV eGbWXV">
。
答案 2 :(得分:0)
for (int i = 0; i < elements.size(); i++) {
//it will return "accountId" text
elements.get(i).getElementsByTag("span").get(1).html();
//it will return "required" text
elements.get(i).getElementsByClass("sc-fzoWqW sc-fzplgP eDnpFZ").first().html();
}
- 我写了这段代码,但我无法理解我的错误
- 在此代码中是否有使用“this”的替代方法?
- 在 SQL Server 和 PostgreSQL 上查询,我如何从第一个表获得第二个表的可视化
- 为什么我的 Onclick 箭头功能在 React 中不起作用?
- java中的random.expovariate()
- 每千个数字得到
- 是否有可能使 loadstring 不可能等于打印?卢阿
- 启动调试会话时出错 - Google Cloud Shell
- 我无法从一个代码实例的列表中删除 None 值,但我可以在另一个实例中。为什么它适用于一个细分市场而不适用于另一个细分市场?
- Appscript 通过会议在 Google 日历中发送电子邮件和创建活动
解决方法
根据此处的文档https://jsoup.org/cookbook/extracting-data/selector-syntax
你可以尝试一下
doc.select("td.sc-fzqBZW sc-fzoyAV eGbWXV");
,
您的选择器 <select id="select"></select>
<script>
const greetings = {
"af" : "Hallo (Afrikaans)","af_NA" : "Hallo (Afrikaans - Namibia)","af_ZA" : "Hallo (Afrikaans - South Afica)","as" : "হ্যালো (Assamese)","as_IN" : "হ্যালো (Assamese - India)",}
const select = document.querySelector('#select');
Object.keys(greetings).forEach(language => {
const option = document.createElement('option');
option.value = language;
option.innerHTML = greetings[language]
select.appendChild(option);
})
</script>
在开头缺少点以表示 sc-fzqBZW.sc-fzoyAV.eGbWXV
是一个类。现在它将匹配这样的元素:
sc-fzqBZW
使用<sc-fzqBZW class="sc-fzoyAV eGbWXV">
。
for (int i = 0; i < elements.size(); i++) {
//it will return "accountId" text
elements.get(i).getElementsByTag("span").get(1).html();
//it will return "required" text
elements.get(i).getElementsByClass("sc-fzoWqW sc-fzplgP eDnpFZ").first().html();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。