像nutch这样的爬虫 你只要给它一个规则 它就能把站点的所有网页都访问出来 但是这个规则是怎么样定义的呢?
打个比方 http://www.163.com 这个站点 它能把 
http://bbs.163.com 
http://www.163.com/aaa/aaa.html....等等到 
http://www.163.com/1/2/3/4/5/n/nnnn.html 都能挖出来它的url是怎么样实现的呢?难道是一个一个地穷举配对访问吗??

解决方案 »

  1.   

    大概意思是这:
    用java的httpclient或urlconnection先把
    http://www.163.com这个网页的html代码弄出来,
    再分析里面所有的链接,
    按照一定规则找出来,
    与爬过的所有链接进行比较,
    如果爬过了并且没有更新,
    就不管,
    然后爬没爬过的,
    依次类推就行了
      

  2.   

    请问 按照你这个想法怎么样实现呢??
    这网页的根本就没有个规则嘛 
    有的东西是我喜欢的 或者有的是用户名 时间什么的 如
    http://www.163.com/news/20101010/aaa.html
    http://www.163.com/news/usernames/includechinese/aaa.html
      

  3.   


    谢谢 有点想像的可能了..
    那么是在http://www.163.com这个页面中的所有 a 标签的链接和 form的链接吗??那要是使用js打开的url呢?
      

  4.   

    对网站爬行的过程就是一个对图的遍历过程。
    每一个页面看作一个顶点,a页面上一个b页面的链接是看作将ab连通的边。对这个图的遍历,如果有某个或者某几个孤立的顶点,那么这个图无法简单的就遍历完。
    假设网站www.163.com下有一个页面http://www.163.com/imalone.html
    163.com整个站点上其他页面没有任何一个页面上有指向它的链接,那么作为图的顶点,这个页面是孤立的,爬虫是爬不到的~
      

  5.   

    如果你站点上有www.yoursite.com/seegood?id=xxxxxx
    这种带参页面,但是,没有任何一个页面有链接连到www.yoursite.com/seegood?id=518518这个页面或者是页面动态形式链接到(比如id=1这个被链接到,然后seegood页面动态的有get到的id+1的链接),那你这个产品页面是不会被爬虫爬到的,爬虫没事会去给你每个参数来个穷举访问么?