相信大家都遇到一个问题——百度搜索的结果可能50%都是广告,今天我们尝试搭建一个个性化搜索引擎。
我们使用网络爬虫来解决该问题,从自动搜索、抓取网页,提取网页内容、按照个性化匹配内容,输出保存,模拟搜索引擎的工作工程。
Python在网络爬虫方面也有很多成熟的库,也有很好的框架可以提供。
Python网络爬虫,通过Python自动获取url的网页html内容,然后用正则表达式分析html,得到你想要的内容,包括url、文字、图片等。
如果必要,就可以对网页内url进行分析,进一步爬取,直到获得自己想要的内容。
当然通过文本语义分析,判断该网页是否是自己想要的内容也很重要。
今天我们用python3自带的获取url内容。urllib是一组处理URLs的包,其中request模块可以打开和读取url链接。
我们看一下最简单的爬取示例。
正则表达式处理HTML
然后我们就可以很容易写出提取标题的url和标题的正则表达式:
#没有办法一次性提取,先提问导航栏的全部内容
前面我们说过,Python的强大之处就是有很多“轮子”,可以直接拿来使用。正则表达式处理网页还是非常复杂的,不同网页必须重新写,而已经有人造好BeautifulSoup轮子,可以快速处理HTML,转换为Python对象,直接处理。
的使用有很多教程,需要大家自己学习,我也刚刚入门。
上面的功能可以快速实现:
然后可以在命令行执行我们的个性化搜索引擎。
上面广告已经自动过滤调,同时减少68%的无效信息,个性化搜索引擎可以更适合自己,毕竟自己写的哈。
当然这个程序还有很多完善的地方,比喻语义分析相关,有一个分词的库——,我同样没有时间去学。欢迎大家补充。
Python有个强大的爬虫框架。非常强大,我也没时间去学。这些都期待你们的分享。
下一期,我们聊聊用Python进行网站搭建——简明Python开发教程(6):用Django搭建网站()。