首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将搜索到的网页自动保存到硬盘中进行离线分析?

如何将搜索到的网页自动保存到硬盘中进行离线分析?
EN

Stack Overflow用户
提问于 2016-10-19 22:34:56
回答 2查看 54关注 0票数 0

我有一个任务,我必须在一个特定的网页内搜索,搜索后,结果页面将显示,必须保存他们进一步分析在离线。我有很多词要搜索一个特定的网页。

我想开发这样一个程序,将自动发送搜索请求在网站和结果页将保存在文件夹中,以便进一步分析离线喜欢分析的正则表达式。我只知道Java,J2EE,熟悉JavaScript。

我在互联网上看到过一些软件,但到目前为止,它们并不符合我的要求,而且它们也不是免费的。但不要忘了推荐这样的自由软件或试用软件。

EN

回答 2

Stack Overflow用户

发布于 2016-10-19 22:43:01

您应该将web响应保存在一个变量中,然后将其写入某个目录中的.txt文件。

然后,您可以离线使用常规表达式来处理您的.txt

HttpComponents- Apache的客户端库可以很好地做到这一点。

下面是一些get请求的示例:

代码语言:javascript
复制
    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;
}
票数 0
EN

Stack Overflow用户

发布于 2016-10-19 23:34:38

如果您正尝试在浏览器中使用JavaScript执行此操作,那么目前还没有办法让脚本访问本机文件系统,从而以您所说的方式写入文件。这里提到了一些使用Java的变通方法:Can javascript access a filesystem?

如果你只想使用JavaScript来做这件事,而且它可以在浏览器之外运行,就像在命令行中或者在服务器上一样,你可以使用Node来很容易地做到这一点。

代码语言:javascript
复制
 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}`);
 });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40134463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档