一个优秀的爬虫需要解决的有关问题

一个优秀的爬虫需要解决的问题

今天看到了一篇文章,个人感觉总结不错,在此分享一下。原文网址http://www.admin5.com/article/20110404/328740.shtml

爬虫陷阱或者说是做爬虫需要解决的问题:

 1、搜索引擎能不能找到网页。

  1要让搜搜引擎发现网站首页,就必须有良好的外部链接链接到首页,就找到了首页,然后爬虫会沿着链接爬的更深。

  让爬虫通过简单的html页面的链接到达,javascript链接,flash链接都是爬虫的陷阱。这点要注意。

  2找到网页后能不能抓去内容。

  被发现的爬虫是可以被爬取的,数据库动态生成,带过很多的参数url、sessionID、整个页面都是flash、框架结构、大量的转向,和大量的复制内容都可能把爬虫拦截在门外。这也也是要注意的

  2、flash

  1在网页某一个部分使用flash来增强视觉效果很正常,比如现在很多的flash广告、图标等。但是这是一个html页面的一部分。不会有太大的影响

  2但是有的网站就是一个很大的flash文件,这就构成了爬虫的陷阱,这时候爬虫爬取的只有一个flash链接,没有其他的内容,所以这点尽量要避免。

  3、sessionID

  1有些网站使用sessionID(会话ID)跟踪用户的访问,用户的没一次访问都会生成一个独立的ID,然后加在url里,这是爬虫每一次抓取网站都会把爬虫当作一个新的用户,造成爬虫不能正常爬取,这也是爬虫的一大陷阱。

  2通常建议跟踪用户访问应该使用cookies而不要生存sessionID 。

  4、各种的跳转

  1除了大家熟悉的301转向之外,其他的转向对搜索爬虫都比较敏感的,比如302暂时转向,javascript转向,flash转向,meta refresh跳转,所以建议大家不要做其他不利于网页的转向,301也包括,不到万不得已的时候也不要用301转向。这是个建议。

  5、框架结构

  1如果你不知道框架结构的话,你就可以省略这一个步骤,因为你已经避免了这个爬虫陷阱。

  2使用框架设计页面,在早期的时候有,不过现在的网站都很少用框架设计,所以这里就不多说了,无论你是在用或者没用,记住一句话:不要让搜索引擎去讨好你。忘记框架这回事。

  6、动态url

  1动态url是指数据库驱动的网站所生成的,带有? =号的等参数的都是,一般来说要避免这种动态参数url、因为这样不利于爬虫爬取。

  7、javascript链接

  1现在有很多的网站都喜欢用java脚本生成导航系统,这是一个很严重的爬虫陷阱,就等于在爬虫还没开始爬的时候你就已经把门关上了。所以要尽量避免

  2java链接在seo中也有一定的用途,站长可以让一些不参与排名的网页和重复的内容页面,可以用java链接阻止爬虫爬取。

  8、要求登录

  1 有些网站的内容是需要用户登录才能看到的会员区域,因为这部分爬虫爬取不到,因为爬虫不会注册,也不会登录,也不会输入帐号密码。所以要修改掉。

  9、强制使用cookies

  1有些网站为了实现某种功能,如记住用户信息,跟踪用户访问路径等。强制用户用cookies,如果用户没有用cookies,页面就会现实不正常。所以强制使用cookies只能造成爬虫无法正常访问。