gpt4 book ai didi

java - Jsoup 获取 Android 应用程序上的所有 html 数据,但无法获取 Java 控制台应用程序上的所有 html 数据

转载 作者:行者123 更新时间:2023-12-02 03:02:02 24 4
gpt4 key购买 nike

在我的 Android 应用程序中,我正在 AsyncTask 中抓取一些数据。它工作完美,Jsoup 正确检索整个文档。但是,当我在 Java 控制台应用程序中运行相同的 Jsoup 代码时,它会连接到 ESPN 网站,但无法获取整个文档,因为 games 对象始终为空(大小始终为 0)。由于某种原因,在控制台应用程序上,代码 document.select("section.sb-score"); 在 html 中找不到此数据。但在 Android 中确实如此。

这是运行良好的 Android 代码:

public class NBAScraper extends GameScraper  //GameScraper extends AsyncTask
{
public NBAScraper(DateTime date)
{
super(date);
mUrl = "http://www.espn.com/nba/scoreboard/_/date/" + mDateStr; //mDateStr format: yyyyMMdd
}

@Override
protected GameSorterHelper doInBackground(Void... voids)
{
GameSorterHelper gsh = new GameSorterHelper();
try
{
Document document = Jsoup.connect(mUrl).get();
games = document.select("section.sb-score");
if(games.size() == 0)
return null;
} catch (IOException)
{
e.printStackTrace();
return null;
}

//do stuff with gsh object...
return gsh;
}
}

这是我尝试过的控制台应用程序:

public class Main
{
public static void main(String[] args)
{
String url = "http://www.espn.com/nba/scoreboard/_/date/20170225";
try
{
Document document = Jsoup.connect(url)
.maxBodySize(0)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36")
.get();
Elements games = document.select("section.sb-score");
System.out.println(games.size());

if (games.size() == 0)
System.out.println("games size is 0");
else
System.out.println("games exist");

} catch (Exception e)
{
e.printStackTrace();
}
}
}

如您所见,我尝试将 maxBodySize 设置为 0(允许任何文档下载大小)并设置 userAgent。两者都无法修复它。当然,我也尝试过不设置这两个选项,但这也不起作用。

有谁知道为什么会发生这种情况以及如何让它在控制台应用程序上工作?谢谢!

最佳答案

看起来它与 userAgent 字符串有关。我必须使用以下 (Android UA) 才能使其在我的 PC 上运行:Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30(KHTML,如 Gecko)版本/4.0 Mobile Safari/534.30

关于java - Jsoup 获取 Android 应用程序上的所有 html 数据,但无法获取 Java 控制台应用程序上的所有 html 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314576/

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