当前位置: 技术问答>linux和unix
wget真得能下载整个网站吗?
来源: 互联网 发布时间:2016-06-01
本文导语: 因为要用到整站下载的功能,重新写实在太难,找了一些工具,不是效果不理想就是没有提供命令行参数,终于找到wget,但使用过程中效果也是不理想。 就拿新浪来说: wget -r -p -np -k http://www.sina.com.cn 上面的命令...
因为要用到整站下载的功能,重新写实在太难,找了一些工具,不是效果不理想就是没有提供命令行参数,终于找到wget,但使用过程中效果也是不理想。
就拿新浪来说:
wget -r -p -np -k http://www.sina.com.cn
上面的命令好像只能下载URL里有“http://www.sina.com.cn”的图片和HTML文件,相对路径、域名不一样的文件都没有下载
上面这些文件都没有下载
我只需要下载指定的URL里所有的资源文件,不管是相对路径、绝对路径、或者是别的域名的文件,只要是在本页面出现的都要下载下来,wget能做到这个吗?
就拿新浪来说:
wget -r -p -np -k http://www.sina.com.cn
上面的命令好像只能下载URL里有“http://www.sina.com.cn”的图片和HTML文件,相对路径、域名不一样的文件都没有下载
上面这些文件都没有下载
我只需要下载指定的URL里所有的资源文件,不管是相对路径、绝对路径、或者是别的域名的文件,只要是在本页面出现的都要下载下来,wget能做到这个吗?
|
貌似使用 -H 选项可能满足你要求...
Wget's recursive retrieval normally refuses to visit hosts different than the one you specified on the command line. This is a reasonable default; without it, every retrieval would have the potential to turn your Wget into a small version of google.
However, visiting different hosts, or host spanning, is sometimes a useful option. Maybe the images are served from a different server. Maybe you're mirroring a site that consists of pages interlinked between three servers. Maybe the server has two equivalent names, and the html pages refer to both interchangeably.
Span to any host—‘-H’
The ‘-H’ option turns on host spanning, thus allowing Wget's recursive run to visit any host referenced by a link. Unless sufficient recursion-limiting criteria are applied depth, these foreign hosts will typically link to yet more hosts, and so on until Wget ends up sucking up much more data than you have intended.
Limit spanning to certain domains—‘-D’
The ‘-D’ option allows you to specify the domains that will be followed, thus limiting the recursion only to the hosts that belong to these domains. Obviously, this makes sense only in conjunction with ‘-H’. A typical example would be downloading the contents of ‘www.server.com’, but allowing downloads from ‘images.server.com’, etc.:
wget -rH -Dserver.com http://www.server.com/
You can specify more than one address by separating them with a comma, e.g. ‘-Ddomain1.com,domain2.com’.
Keep download off certain domains—‘--exclude-domains’
If there are domains you want to exclude specifically, you can do it with ‘--exclude-domains’, which accepts the same type of arguments of ‘-D’, but will exclude all the listed domains. For example, if you want to download all the hosts from ‘foo.edu’ domain, with the exception of ‘sunsite.foo.edu’, you can do it like this:
wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu
http://www.foo.edu/
|
搜了下这个:
http://linuxreviews.org/quicktips/wget/
http://linuxreviews.org/quicktips/wget/
|
別白費心機了,要是包含jsp,asp的頁面,拿下來那些靜態的頁面沒什麼意義的
|
up............
|
这个命令还是第一次听,下来实验一下
|
要加 --mirror 参数的.
但是顺便指出现在大多数网站都是不可能全部下下来了,无论什么软件。很多页面都是服务端即时得到的呀.
但是顺便指出现在大多数网站都是不可能全部下下来了,无论什么软件。很多页面都是服务端即时得到的呀.
|
http://blog.csdn.net/chinalinuxzend/archive/2009/02/13/3885712.aspx
可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,wget也会把别的网站的东西下载 下来,由于互联网的特性,很有可能你会把整个互联网给下载下来 --,所以要加上 -np这个参数,表示不下载别的站点的链接. -k表示将下载的网页里的链接修改为本地链接.-p获得所以显示网页所需的元素,比如图片什么的.
另外还有其他的一些参数可以使用:
-c表示断点续传
-t 100表示重试100次,-t 0表示无穷次重试
另外可以将要下载的url写到一个文件中,每个url一行,使用这样的命令 wget -i download.txt.
--reject=avi,rmvb 表示不下载avi,rmvb的文件,--accept=jpg,jpeg,表示只下载jpg,jpeg的文件.
可以在用户目录下建立一个.wgetrc的文件(windows里面好像不能直接建立这样的文件,windows会认为没有文件名--),里面写上 http-proxy = 123.456.78.9:80,然后在加上参数 --proxy=on,如果需要密码,再加上下面的参数 --proxy-user=username, --proxy-passwd=password
可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,wget也会把别的网站的东西下载 下来,由于互联网的特性,很有可能你会把整个互联网给下载下来 --,所以要加上 -np这个参数,表示不下载别的站点的链接. -k表示将下载的网页里的链接修改为本地链接.-p获得所以显示网页所需的元素,比如图片什么的.
另外还有其他的一些参数可以使用:
-c表示断点续传
-t 100表示重试100次,-t 0表示无穷次重试
另外可以将要下载的url写到一个文件中,每个url一行,使用这样的命令 wget -i download.txt.
--reject=avi,rmvb 表示不下载avi,rmvb的文件,--accept=jpg,jpeg,表示只下载jpg,jpeg的文件.
可以在用户目录下建立一个.wgetrc的文件(windows里面好像不能直接建立这样的文件,windows会认为没有文件名--),里面写上 http-proxy = 123.456.78.9:80,然后在加上参数 --proxy=on,如果需要密码,再加上下面的参数 --proxy-user=username, --proxy-passwd=password
|
wget?算了吧,不管你用什么方式,都是下载不下来的,因为网页本身有做保护,不管你怎么搞都是搞不下来的.不过很怪哦,你用wget?很少人用.....