《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