介绍
福哥更新了Spider对象,实现了爬取网页内容,分析网页数据,写入数据库这些功能。实现了这些功能之后网页蜘蛛的基本功能也就差不多完成了!后面就可以开始编写搜索引擎的前端UI功能了,相对网页蜘蛛来说,搜索引擎前端UI就比较简单了!
但是,网页蜘蛛是搜索引擎的基础,只有采集到足够多的数据,搜索引擎才可以在也会查询的时候返回用户想看到的结果内容。所以,今天这一课童鞋们一定要好好学习了!
在前面设计数据表的时候出了一个纰漏,福哥没有在webpages数据表里建立与websites数据表的关联键,这样就无法在webpages里提取一个域名下的所有网页信息了。
新增字段
我们需要在webpages数据表里增加关联键字段websiteId用来关联websites数据表的主键字段。
SQL
SQL语句如下
方法
getPendingPages
analyzePage
findAllATags
fetchDomainURL
fetchWebURL
fetchDomainPageURL
saveWebPage
updateWebPage
主程序代码也有所更新,除了之前进行的域名爬取处理之外,还增加了对域名下面的网页的爬取处理。
getPendingPages
通过域名获取到websites数据表的相关记录
通过websites.websiteId字段的值在webpages表里查询出指定数量的该域名所属的网页信息
analyzePage
使用正则表达式将meta信息里面的charset信息提取出来了
findAllATags
增加了websiteId参数,传递给saveWebPage方法
fetchDomainURL
增加了websiteId参数,传递给findAllATags方法
fetchWebURL
增加了websiteId参数,传递给findAllATags方法
fetchDomainPageURL
打开指定的url的网页
分析网页的信息,包括标题、关键字、描述等等信息
将网页的信息更新到webpages数据表里面
扫描网页的超链接,提取子级页面网址
saveWebPage
增加了websiteId参数,在写入webpages数据表的时候传递websiteId参数
updateWebPage
根据webpageId更新webpages数据表的相关字段的值
我们的网页蜘蛛已经完成80%以上了,剩下的就是把网页的文字数据提取出来写入到数据库当中,同时将数据库当中的网页数据同步到ElasticSearch搜索引擎里面,采集的工作就算基本完成了!
下一节课,福哥将带着大家完成网页蜘蛛的最后一部分代码的编写,大家要好好学习哦~~
微信公众号的文章发出去之后是不能编辑的,但是福哥偶尔会修复一些描述不到位、示例不正确、结构不清晰等等的文章错误,这些只能在网站上才能看到最新版本内容,望大家知晓~~
https://m.tongfu.net/home/35/blog/512811.html