在我的Android应用程序中,我正在异步任务中抓取一些数据。它工作正常,Jsoup可以正确地检索整个文档。但是,当我在Java控制台应用程序中运行相同的Jsoup代码时,它会连接到ESPN网站,但无法获取整个文档,因为games
对象始终为空(大小始终为0)。由于某些原因,在控制台应用程序上,代码文档。选择(“section.sb分数”)
在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
设置为0。两者都不能解决问题。当然,我也尝试过在没有设置这两个选项的情况下使用它,但这也不起作用。
有人知道为什么会发生这种情况,以及如何让它在控制台应用程序上工作吗?谢谢你!
看起来它与userAgent
字符串有关。为了让它在我的PC上运行,我不得不使用以下(AndroidUA):Mozilla/5.0(Linux;U;Android4.0.3;ko-kr;LG-L160L Build/IML74K)AppleWebkit/534.30(KHTML,比如Gecko)Version/4.0 Mobile Safari/534.30
问题内容: 我正在用Java和gradle编写控制台应用程序。我正在使用插件,并在中正确配置了必填字段。 在我的主班里,我与有联系。这是问题所在:当我在项目目录中运行时,阅读器不会等待控制台输入。而是在第一次通话时返回。对于我在做什么,这种行为是不可取的。 解决办法是什么?是否有用于gradle的单独的控制台应用程序插件,或者我需要以某种方式调整插件以适合我的需要? 问题答案: 默认情况下,gra
我目前正在开发一个Android版本的iPhone应用程序。
问题内容: 所有, 我已经用Java编写了基于命令行的PhoneBook应用程序。该应用程序基本上会询问用户的一些详细信息,例如姓名,年龄,地址和电话号码,并将它们存储在文件中。其他操作包括按名称,电话号码等查找电话簿。所有详细信息都通过控制台输入。 我正在尝试为我已实现的每个功能编写JUnit测试用例,但无法弄清楚如何将实现代码重定向到我的JUnit测试方法中的某个东西,当我的实际代码停止供用户
通过WebLogic Admin控制台停止/启动部署时,有时我们会收到以下错误: 然而,如果我停止并启动托管服务器,部署似乎又回来了。 我的问题是,为什么这些war文件在服务器运行时从托管服务器上随机消失?这通常发生在我们有一段时间(6个月)没有接触部署之后。还有其他部署的war文件。它不会影响应用程序的运行,直到我们尝试停止/启动它。 这就是文件系统前后的样子。 在此处重新启动托管服务器。。。
我在上传文件时遇到错误。Google play控制台中的aab捆绑包与现有密钥库。我有白标签应用程序和密钥库文件 你上传了一个APK或Android应用捆绑包,该捆绑包使用一个密钥签名,该密钥也用于签名交付给用户的APK 在Android应用程序包的概念中,所有30个应用程序都可以使用相同的密钥库文件和密码,还是我们需要为所有30个应用程序创建单独的密钥库和密码?
要在控制台应用程序中开始使用Hangfire,您需要首先将Hangfire包安装到控制台应用程序。因此,使用您的软件包管理器控制台窗口进行安装: PM> Install-Package Hangfire.Core 然后添加任务存储安装所需的软件包。例如,使用SQL Server: PM> Install-Package Hangfire.SqlServer 仅需 Hangfire.Core 软件包