wget -c -r -p -np -k http://xxx.com/xxx
其中:
-c, --continue (断点续传) 接着下载没下载完的文件
-r, --recursive(递归) specify recursive download.(指定递归下载)
-p, --page-requisites(页面必需元素) get all images, etc. needed to display HTML page.(下载所有的图片等页面显示所需的内容)
-np, --no-parent(不追溯至父级) don't ascend to the parent directory.
-k, --convert-links(转换链接) make links in downloaded HTML point to local files.(将下载的HTML页面中的链接转换为相对链接即本地链接)
wget -r -p -k -np [网址]
参数说明:
-r : 递归下载
-p : 下载所有用于显示 HTML 页面的图片之类的元素
-k : 在转换文件 X 前先将它备份为 X.orig。
-np: 不追溯至父目录
$ wget -r -np -nd http://example.com/packages/
这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np 的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。
$ wget -m -k (-H) http://www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。
与上一条命令相似,但多加了一个 –accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。
这里所指定的 -c 选项的作用为断点续传。
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷)。
最后一条就是用来镜像一个网站的,简单有效,速度超快,镜像下来网站文件结构,代码都完整无须修改。
脚本如下:
或者使用:
如果有些站点禁止了SEO 收录,那么有可能下载的只能下载一个robots.txt 文件,此时,我们可以使用 -e 参数,即脚本:
有些网站限制了WGET 访问,此时我们可以使用参数 -U ,即使用 –user-agent=AGENT 使用 AGENT 取代 Wget/VERSION 作为识别代号:
找到你站点的Nginx配置文件地址(使用yum,apt-get安装的Nginx,通常会在/etc/nginx/conf/ 或 /usr/local/nginx/conf/)
添加以下配置:
server { listen 80; server_name 你的域名.com www.你的域名.com; rewrite ^(.*)$ http://你的域名.com$1permanent; location / { if ($http_user_agent ~* (wget|ab) ) { return 403; } if ($http_user_agent ~* LWP :: Simple|Wget) { return 403; } } }
亦可设置成 return 444; 这样对方不会收到403错误信息,只会像网站缓慢无法链接.
编辑完保存后,执行
service nginx restart 重启Nginx
至此,Nginx配置防扒完成。
很多人玩linux差不都会用wget来下载一些文件来配置或者安装软件,当然也有人会用它来递归下载的你的网站内容,下面介绍一下如何配置Nginx实现防止别人通过wget下载你的网站内容和如何破解因为Nginx或Apache设置禁止wget或curl。
防止Wget递归下载
假设Nginx默认配置文件所在目录:
wget的默认User Agent是GNU/Linux,wget,因此我们只需要阻止该UA的访问并返回403即可。
Nginx配置如下:
扩展:
Nginx中有一个独特的HTTP 444状态,如果配置return 444,那么对方就不会收到错误信息,看起来就像是网站服务器打开缓慢导致无法连接一样。
破解禁止wget或curl下载
某些网站设置了网站服务器或者iptables的参数禁止wget/curl的访问,让我们不能愉快地扒站了怎么办?其实大部分只是禁止了wget/curl的User Agent,我们只需要给他们设置一个正常的浏览器UA即可。
临时变更wget的UA
在wget前加上参数 ,代表设置User Aagent
永久变更Wget的UA
添加以下代码到/etc/wgetrc
变更curl的UA
使用以下参数:
同时,curl也可以传递refer信息来跳过某些防盗链设置:
这代表从Google跳转到我们的网站.