我目前正在开发一个实现网络抓取的java项目,到目前为止我面临一个奇怪的问题。
这是我所做的:
- 获取与网站页面的 URL 连接
- 解析 HTML 代码以获取一些内容 (OpenData)
- 在我的数据库中添加内容
- 移至下一页并返回步骤 1
这实际上很长,可以持续几天,所以我需要让脚本运行。问题是,有时它会无缘无故停止(没有错误、没有消息、没有关闭窗口;它只是一点点停止,我需要按下我的一个按钮来重新启动它)。我已经实现了一个简短的代码,它从停止的地方重新启动应用程序。我相信这是与数据库的连接问题,所以我想知道如何解决它。
我使用一个静态类,它在应用程序的开头创建这个类的一个实例,然后我使用这个类中的静态方法来运行我的查询,例如:
ConnexionBDD.con.prepareStatement(query);
public static Connection loadDriver() {
try {
Class.forName(Driver);
con = DriverManager.getConnection(ConnectionString, user, pwd);
} catch (ClassNotFoundException e) {
System.err.println("Classe not found : Class.forName(...)");
} catch (SQLException e) {
System.err.println(e.getMessage());
}
return con;
}
我不确定我是否在做正确的事情以使我的连接永远持续(理论上)并最终在它完成迭代我的链接时关闭它。