技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Linux --> 其实你不懂wget的心-02

其实你不懂wget的心-02

浏览:2822次  出处信息

    上次提到了wget可以避免robots.txt的事情。这篇文章就做个试验,让大家亲身体验。跟着我的思路来走。

    1 我们搭建了一个临时的apache-1.3.41服务器,端口号设置成了61212。网页文件所在路径为/home/rocrocket/program/apache-1.3.41-all/htdocs,我们简称为htdocs目录。

    2 在htdocs目录中,我们建立一个index.html文件,内容大致如下:

    $ cat -n index.html

以下是引用片段:
1  <html>
2          <head>
3                  <title>rocrocket</title>
4          </head>
5          <body>
6                  <ul>
7                          <li><a href=rocrocket-1.html>rocrocket-1</li>
8                          <li><a href=rocrocket-2.html>rocrocket-2</li>
9                  </ul>
10          </body>
11  </html>

    通过网页方式访问的话,效果是这样的:

    wget-html

    3 类似的建立如下文件:

$ ls -1
index.html
robots.txt
roc.html
rocrocket-1-1.html
rocrocket-1-2.html
rocrocket-1.html
rocrocket-2-1.html
rocrocket-2-2.html
rocrocket-2.html

    根据文件编号,你应该能看出他们之间的调用关系。

    4 建立简单的robots.txt文件:

$ cat robots.txt
User-agent: *
Disallow: rocrocket-2.html

    这个文件的内容就是要屏蔽rocrocket-2文件的下载和spider。

    5 我们用wget来下载这个测试站点:

wget -r http://my-test.cn:61212/

$ ls -1
index.html
robots.txt
rocrocket-1-1.html
rocrocket-1-2.html
rocrocket-1.html

    看!下载到的包含了robots.txt文件,但没有包含rocrocket-2及其相关的文件。

    可见,robots.txt生效了,wget遵守了robots.txt的规则!

    6 我如何突破robots.txt的限制呢?

    使用-execute选项就可以,这个选项的作用是将其后的参数模拟“放到.wgetrc中的执行效果”。

$ wget -r --execute robots=off http://jx-nsop-test0.jx:61212/

$ ls -1
index.html
rocrocket-1-1.html
rocrocket-1-2.html
rocrocket-1.html
rocrocket-2-1.html
rocrocket-2-2.html
rocrocket-2.html

    看,rocrocket-2系列的文件也都顺利的下载下来了:D

建议继续学习:

  1. wget 的使用    (阅读:4454)
  2. 其实你不懂wget的心-01    (阅读:3559)
  3. 其实你不懂wget的心-04    (阅读:3353)
  4. 其实你不懂wget的心-05    (阅读:2943)
  5. 其实你不懂wget的心-03    (阅读:2662)
  6. wget 自动发送用户名密码    (阅读:2553)
  7. Linux下同时wget多个文件    (阅读:2305)
  8. wget中文使用手册    (阅读:2239)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1