抓取网站,趴取网站HTML页面

在 Linux 服务器中使用 wget 命令抓取网站的 HTML 页面是一种常见的操作。下面是对你提到的命令的详细解释,以及一些额外的选项和注意事项。

wget 命令详解

1. 抓取整站

wget -r -p -np -k -E http://www.xxx.com
  • -r:递归下载,意味着 wget 会下载指定 URL 及其所有链接的页面。
  • -p:下载页面所需的所有资源(如图片、CSS 文件等),以确保下载的页面能够完整显示。
  • -np:不追溯到父目录,确保只下载指定 URL 及其子目录的内容。
  • -k:将下载的 HTML 页面中的绝对链接转换为相对链接,以便在本地查看时能够正确访问。
  • -E:将所有 text/html 文档保存为 .html 扩展名。

2. 抓取第一级链接

wget -l 1 -p -np -k http://www.xxx.com
  • -l 1���限制递归的深度为 1,意味着只下载指定 URL 的直接链接,不会下载更深层次的内容。

3. 镜像整个网站

wget -m -e robots=off -k -E "http://www.xxx.com/"
  • -m:创建网站的镜像,等同于 -r -N -l inf -p,意味着会尽可能完整地下载整个网站。
  • -e robots=off:忽略 robots.txt 文件的限制,强制下载所有内容(请注意,这可能违反某些网站的使用条款)。
  • -k:同上,将绝对 URL 转换为相对 URL。
  • -E:同上,将 text/html 文档保存为 .html 扩展名。

其他常用选项

  • -P <prefix>:指定下载文件的存储路径。例如,-P /path/to/directory 会将下载的文件存储在指定的目录中。
  • --limit-rate=<rate>:限制下载速度,例如 --limit-rate=200k 会将下载速度限制为每秒 200KB。
  • -A <accept>:只下载特定类型的文件,例如 -A jpg,jpeg,png 只下载这些图片格式。
  • -R <reject>:排除特定类型的文件,例如 -R html 会排除 HTML 文件。

注意事项

  1. 遵循网站的使用条款:在抓取网站内容之前,请确保遵循该网站的使用条款和 robots.txt 文件的规定。强制抓取可能会导致 IP 被封禁。

  2. 服务器负载:大量抓取可能会对目标网站造成负担,建议使用 --wait 选项设置请求之间的等待时间,例如 --wait=1 每次请求之间等待 1 秒。

  3. 合法性:确保你有权抓取该网站的内容,特别是对于需要登录或受版权保护的内容。

示例命令

以下是一个完整的示例命令,结合了多个选项:

wget -m -p -E -k -e robots=off --wait=1 --limit-rate=200k http://www.xxx.com/

这个命令会镜像整个网站,下载所有资源,转换链接,并在每个请求之间等待 1 秒,限制下载速度为 200KB/s。

posted @ 2021-01-19 17:03  John-Python  阅读(778)  评论(0)    收藏  举报