我有一项任务,我必须在特定网页内搜索,搜索后,将显示结果页面,必须保存它们以便在离线进行进一步分析。我有很多单词可以搜索特定的网页。
我想开发这样一个程序,它会自动在站点中发送搜索请求,结果页面将保存在文件夹中,以便在离线状态下进行进一步分析,就像通过正则表达式进行分析一样。我只懂Java,J2EE并且熟悉JavaScript。
我在互联网上看过一些软件,但到目前为止,它们与我的要求不符,而且它们不是免费的。但是不要忘记通过试用推荐这样的免费软件或软件。
答案 0 :(得分:0)
您应该将Web响应保存在变量中,然后将其写入某个目录中的.txt
文件。
然后,您可以与您的.txt
一起离线定期进行展示。
来自Apache的HttpComponents-client库很适合这样做。
有一些获取请求的示例:
public String httpGetSimple(String url){
String source = null;
HttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
source = EntityUtils.toString(httpResponse.getEntity());
} catch (IOException e) {
e.printStackTrace();
}
return source;
}
答案 1 :(得分:0)
如果您尝试在浏览器中使用JavaScript执行此操作,那么现在脚本无法以您所谈论的方式访问本机文件系统来编写文件。有一些使用Java的解决方法,在这里提到:Can javascript access a filesystem?
如果您只是想使用JavaScript来执行它,并且它可以在浏览器之外运行,例如在命令行或服务器上运行,您可以使用Node轻松地执行此操作。
var http = require('http');
var fs = require('fs');
http.get('http://www.google.com/index.html', (res) => {
console.log(`Got response: ${res.statusCode}`);
//read in the response data
var body = "";
res.on("data", function(chunk) {
body += chunk;
});
//write the body of the file to a text file
fs.writeSync('page.txt', body);
res.resume();
}).on('error', (e) => {
console.log(`Got error: ${e.message}`);
});