wget整站模板抓取案例及wget参数详解

《wget整站模板抓取案例及wget参数详解》

总结、项目Github地址

https://github.com/anasinc/getsite

一、实战整站抓取案例

1.站点抓取

方式一:命令行

wget -r -p -np -k -e robots=off http://www.han-mei.com

方式二:shell脚本

#!/bin/sh
## shell脚本getsite.sh
## 整站抓取,绕过robot.txt
if [ $# -eq 0 ]       ##判断参数是否存在
then
        echo "请输入站点地址,如:./getsite.sh http://www.baidu.com"
        exit                     ##不存在退出
fi
targetSite=$1
wget -r -p -np -k -e robots=off ${targetSite}

2.目录迁移

将下载的www.xxx.com目录复制到/var/www/www.xxx.com目录

mv www.xxx.com /var/www/www.xxx.com

3.nginx解析

解析nginx的测试网站根目录到改目录即可

vim /etc/nginx/site-available/www.xxx.com
cd /etc/nginx/site-enabled/
ln -s ../site-available/www.xxx.com
service nginx reload

4.后续工作

  • 替换重复的js/css文件用微擎header
  • 删除无用的jpg等资源文件
  • 精简再精简抽象修改成可用的微擎门户模板

二、整站递归抓取参数解释

## 普通
wget -r -p -np -k http://doc.code365.net/Manual/FreeBSD_Arch_HandBook/

## 绕过roboot.txt
wget -r -p -np -k -e robots=off http://www.han-mei.com

-r  递归
-p,  --page-requisites(页面必需元素)
-np, --no-parent(不追溯至父级)
-k  将下载的HTML页面中的链接转换为相对链接即本地链接

另外断点续传用-nc参数 日志 用-o参数

熟练掌握wget命令,可以帮助你方便的使用linux。

本方法无法下载被reboot.txt屏蔽的文件

”-e robots=off” 让wget耍流氓无视robots.txt协议

-U “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6” 伪造agent信息

三、模拟USER-AGENT

Mask User Agent and Display wget like Browser Using wget –user-agent

Some websites can disallow you to download its page by identifying that the user agent is not a browser. So you can mask the user agent by using –user-agent options and show wget like a browser as shown below.

$ wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

四、技巧

$ wget -r -np -nd http://example.com/packages/
这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np
的作用是不遍历父目录,-nd 表示不在本机重新创建目录结构。

$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/
与上一条命令相似,但多加了一个 --accept=iso 选项,这指示 wget 仅下载 i386
目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。

$ wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,
然后 wget 就会自动为你下载所有文件了。

$ wget -c http://example.com/really-big-file.iso
这里所指定的 -c 选项的作用为断点续传。

$ wget -m -k (-H) http://www.example.com/
该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,
那么可以使用 -H 选项
微信扫一扫交流

作者:ryanemax
微信关注:ryanemax (刘雨飏)
本文出处:https://romantic-hoover-f991f1.netlify.com/cookbook/devops/wgetsite/
授权协议: CC BY-SA 4.0