利用JAVA爬虫如何实现Web网页的保存 10C

给定一个网站地址(如http://www.souhu.com,程序运行时,输入网站地址,下载本网站的页面及页面包含的相关的其他资源文件(超链接,图片文件,样式文件,脚本文件),并保存在本地文件中,实现整个网站的离线浏览。

7个回答

参考这个程序:https://www.cnblogs.com/liuxianan/archive/2012/10/09/2717561.html
注意的思路就是遍历链接分别下载,并且要把链接在网页里的指向改成指向相对路径的文件。
另外,一些需要ajax交互的网页,实际上是不能抓取的,因为它们需要实时和服务器交互数据。

kafly
kafly 找个代理服务器的源代码快速实现
接近 3 年之前 回复
qq_35029614
qq_35029614 代码的话,已经取消分享了,不知道能不能加你QQ交流一下!我的是853971180
接近 3 年之前 回复

用jsoup吧~ 至于你所说的下载网站的资源 那就只能解析网站里面的链接了 根据链接的后缀区分是样式、脚本、图片等等,然后分别做处理即可~

qq_35029614
qq_35029614 回复旋葎: 可以加个qq,详细交流一下吗?
接近 3 年之前 回复
jkl012789
旋葎 回复qq_35029614: 那是因为你匹配出来的资源链接都是相对路径,你需要补全成绝对路径才行
接近 3 年之前 回复
qq_35029614
qq_35029614 嗯,目前的问题在于,我用正则表达式匹配出各种资源,但是使用程序下载的时候出现问题,显示无法寻找到相关链接(需要代码的话,我给你看看))
接近 3 年之前 回复

纯粹的离线想要实现我认为是可行的,但是一个问题在于一个网页生成的时候,很很多资源会进行二次请求(也就是一个网页的组成是多次请求的结果),详情可以F12调试看网络那里可以看到:
1.先请求了网页的整体结构
2.请求各种资源,CSS,JS,图片

而这种想要在自己电脑离线出完全的效果的话,那么就相当于你自己写了一个同样结构的网页(HTML),然后其他的CSS,图片,JS等还需要存放到本地,并且把其中对应的标签元素里的请求地址,如img标签里面的src属性的地址该为本地的,林林种种,其实还是蛮复杂的,比如打开淘宝首页,几百张的图片全部需要下载下来,也就是另存为,这种还可能是和源文件相差很大的,图片大小等等

qq_35029614
qq_35029614 没错,是这个思路。但是二次请求就算了,因为里面涉及到的东西太多了。能下载一个网站的主页就行了,不知道有没有对应的资料或者代码可供参考
接近 3 年之前 回复

java的话静态用 jsoup , 动态用 htmlUnit ; 不过我觉得 casperjs 更好些

TreasureNow
李树超 回复qq_35029614: 需要什么元素要自己写代码去拿,类似写 jquery 一样
接近 3 年之前 回复
qq_35029614
qq_35029614 jsoup刚刚试过,但是好像它实现的原理不是下载文件来实现的,而是单纯的将绝对路径转化为相对路径,能详细说说嘛
接近 3 年之前 回复
qq_35029614
qq_35029614 兄弟,可能我没说清自己的需求和问题,楼上的几位都理解的很好
接近 3 年之前 回复

post或者get请求到网页后打开的是源码,要对源码进行分析,写算法提取title,a标签,img标签,文章内容等,然后除掉表头表尾,获取正文内容,一般最大化就是body里面,剔除所有标签即可。

qq_35029614
qq_35029614 我这个需要的是用JAVA来实现
接近 3 年之前 回复
qq_35029614
qq_35029614 不是这样的,我想实现网页的离线浏览,这个只是生成链接的
接近 3 年之前 回复

全站下载有点过于复杂了,一般只是要下载网页的话,是没任何问题的,你可以看下像百度新闻,这样的新闻机器人,直接抓取百度新闻这样的更方便一些。

qq_35029614
qq_35029614 我想实现网页的离线浏览,这个只是生成链接的,可能大兄弟理解错我的意思了
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐