网络爬虫简单理解

      前段时间,看了一个别人的网络爬虫小程序,理解简单网络爬虫的流程大概是这样的。

     (1)从URL中得到网页文件。

       这个过程在WIN 下显得格外简单,VC提供了一系列的关于网络和HTTP协议的API;而在LINUX下,却能更好的让你理解得到网页文件的过程。首先,你需要从URL信息通过DNS转换得到服务器主机的相关信息,如IP主机名等,有了这些后可以向该主机发送HTTP协议请求,通过SOCKET连接取回你想要的页面文件。中间可以增加些差错和超时控制。

     (2)分析得到的网页文件

     这个过程主要有2个任务要做。一,提取页面中的URL信息以便以后继续搜索,使用正则表达式是一个最佳选择,但是C和C++对正则式的支持并不是很好,往往费力不讨好,估计正则表达问题也是爬虫很多都用PERL和PYTHON写的主要原因。二,对网页内容处理。提取你关心的信息内容,按一定格式进行存储,以方便后续使用。

     (3)继续搜索

     按深度和广度优先,继续对URL进行搜索,重复(1)(2)部分。大部分时候选择广度优先,大量实践表明广度优先更容易在限定时间范围内搜索到你关系的内容,当然对于特殊需求也可以使用深度优先。

     为了避免不对相同网页进行重复爬取,在程序中要维护一个VISITED集合,这个集合中记录你了曾经访问过的URL。随程序的运行,VISITED集合会无限增大,对其中元素的查找和比对将使用相当大时间,因此VISITED集合一般使用HASH结构存储,以空间换取时间,从而达到o(1)的搜索时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值