本文主要介绍使用Python爬虫爬取Python百度词条的信息 主要参考慕课网的《开发简单爬虫》以及一些数据库操作
开发工具
—工欲善其事 必先利其器
首先 这里开发工具用的Python3.6+Pycharm+MySQL5.7+SQLyog
前面2个的安装直接网上搜下教程一大堆 而且免去了配置环境变量的操作,MySQL数据库(安装教程也一大堆)现在最新版是5.7 它的安装与之前的有点不同
注意到没 安装时多了一个选项 安装InnoDB时设置password 然后再填入即可 其它步骤和一般软件没什么区别
然后去搜索引擎下载SQLyog工具(用Pycharm自带的dataBase应该也可以 有兴趣的小伙伴可以去试试 ) 连接数据库
点击连接 出错的可以看看 进入控制面板→管理工具→服务→看MySQL service是否打开 连接好后创建数据库baikeurl 然后建url表
再建立4个栏位 分别是 id urlname urlhref urlcontent
爬虫的架构及具体流程
1.传入目标url后调用URL管理器
2.URL管理器对URL进行具体的判断与检索后传入网页下载器
3.网页下载器工作后将网页传入网页解析器
4.将解析后的内容(url,title,content等)传入输出器
5.最后输出器进行数据操作(写入文件 导入数据库等)
整个过程采用了严格的面向对象思想 每一过程具体的函数都封装在相应文件中
实例分析
要爬取的链接:http://baike.baidu.com/item/Python
通过浏览器的开发者工具分析可知 百度百科的词条
链接:/item/……的形式
标题:
……
内容:废话不多说 直接上代码 关键地方带注释 一个包括5个文件
爬虫调度端(主页)
spider.py文件
import html_downloader
import html_outputer
import html_parser
import url_manager
#爬虫主函数
class SpiderMain(object):
def __init__(self):
self.urls = url_manager.UrlManager()
self.downloader = html_dow