我有一个任务,我必须在一个特定的网页内搜索,搜索后,结果页面将显示,必须保存他们进一步分析在离线。我有很多词要搜索一个特定的网页。
我想开发这样一个程序,将自动发送搜索请求在网站和结果页将保存在文件夹中,以便进一步分析离线喜欢分析的正则表达式。我只知道Java,J2EE,熟悉JavaScript。
我在互联网上看到过一些软件,但到目前为止,它们并不符合我的要求,而且它们也不是免费的。但不要忘了推荐这样的自由软件或试用软件。
发布于 2016-10-19 22:43:01
您应该将web响应保存在一个变量中,然后将其写入某个目录中的.txt文件。
然后,您可以离线使用常规表达式来处理您的.txt。
HttpComponents- Apache的客户端库可以很好地做到这一点。
下面是一些get请求的示例:
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;
}发布于 2016-10-19 23:34:38
如果您正尝试在浏览器中使用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}`);
});
https://stackoverflow.com/questions/40134463
复制相似问题