gpt4 book ai didi

java - 使用 JSoup 从 HipHopEarly 网站获取艺术家 + 轨道列表时遇到问题

转载 作者:行者123 更新时间:2023-12-01 12:25:32 26 4
gpt4 key购买 nike

我开始对我的这个小项目感到沮丧。奇怪的是我的程序曾经在某一时刻运行过。我回来向程序添加了一些内容,但它不再抓取任何内容。我假设网站发生了一些变化?

如果我只是犯了一个愚蠢的错误,我会提前道歉,因为我对编程还是新手。

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class scraper {
public static void main(String[] args) {
String url = "http://www.hiphopearly.com/tracks";
Document doc = Jsoup.connect(url).get();
Elements tracks = doc.select("#left-column div.tracklisting div.tracks div.track");
for (Element track : tracks) {
System.out.println(track.text());
}
}
}

当我运行该程序时,没有返回任何内容。我相当肯定问题出在以下内容上:

doc.select("#left-column div.tracklisting div.tracks div.track");

如何确定正确的 CSS 路径来获取艺术家和轨道标题?我尝试复制并粘贴 Chrome 浏览器自动给出的 CSS 路径,但没有成功。

最佳答案

按如下方式更改代码:

String url = "http://www.hiphopearly.com/tracks";
Document doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0")
.get();

Elements tracks = doc.select("#left-column div.track-listing div.tracks div.track");
for (Element track : tracks) {
System.out.println(track.text());
}

这种情况很常见 - 网站根据客户端用户代理生成不同的内容。 Pshemo几乎是正确的 - 如果你也能在浏览器中获得 JavaScript 模板(例如 AngularJS),那么他提到的情况就是这样(你可以通过显示网站的源代码来检查它,而不是显示渲染结果的 Firebug)。

第二件事是轨道列表类已更改为“轨道列表”。

关于java - 使用 JSoup 从 HipHopEarly 网站获取艺术家 + 轨道列表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com