wget 下载整个网站(扒站)及如何避开 robots.txt 限制下载

   日期:2024-12-26    作者:dgjinguo 移动:http://oml01z.riyuangf.com/mobile/quote/33930.html
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跳转到我们的网站.


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号