尝试写个爬虫(1)

来源:互联网 发布:伦敦电影学院 知乎 编辑:程序博客网 时间:2024/06/06 02:45

背景知识

URL uniform resource locator 也是平常所说的网页地址。

URL是标准的Internet协议,由协议类型,主机名,资源路径等组成。

格式为: protocol://hostname[:port]/path/[;parameters][?query]

protocal :是协议类型,最常用的是http协议。

hostname:主机地址,既可以用ip也可以用域名,如果是域名,则在实际访问前,会通过本地DNS查询,转换成ip地址。

port:端口号,及资源所采用协议的通信端口,比如http协议默认的是80。

path:用于表示主机中资源的目录信息,通常用“/”隔开。

parameters:用于表示某些协议的特别参数,为可选项。

query:用于表示查询的子串,例如在http中通常可采用此字符串,构造一个get请求,执行服务器上的一个动态网页。注意,这是www交互式技术的基础。


搜索引擎的基础工作是采集最全面的URL信息,并由此构建最全面的资源信息库。这个小爬虫的目的就是设计一个可用的URL中http网址信息收集器,并保存到MySQL中。

搜索引擎一般由信息采集,信息索引和用户检索三部分组成。

信息采集:一般是利用网络爬虫和URL自动下载目标网页,然后再利用分析器,自动分析成html脚本,生成中间信息。在这个过程中,利用http协议,向目标站点请求html文件,下载后执行分析操作,提取出URL,并选择性存储。

此间有两个技术难点:

1.如何获得全面的URL信息?如何高效去重?

2.html文本信息的抽取。由于html是高度自由且非结构化的文本,如何对html解析,如何从网页中挖取隐含和准确的信息是非常困难的。(html5,regular expression)


信息索引

信息索引是把采集到的数据存储起来,并按一定的规则建立索引。以提高检索速度,提升用户体验。(robin就是北大信息管理专业)

索引通常存储在大型数据库中,也可以存放在自定义的文件里。

索引涉及分词,排序,结构分析等技术,由于数据量较大,索引的创建与更新相对较慢。


用户检索

即用户接口的部分,向搜索引擎发出查询命令,这里的涉及页面排序方法,各个搜索引擎不尽相同。(关于搜索引擎也可以参考吴军博士的《数学之美》)



原创粉丝点击