Python是一门非常适合开发网络爬虫的编程语言,相比于其他静态编程语言,Python抓取网页文档的接口更简洁;相比于其他动态脚本语言,Python的urllib2包提供了较为完整的访问网页文档的API。此外,python中有**的第三方包可以**实现网页抓取,并可用极短的代码完成网页的标签过滤功能。
Python爬虫架构组成:
1. URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器;
2. 网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器;
3. 网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。
Python爬虫工作原理:
Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。
Python爬虫常用框架有:
grab:网络爬虫框架;
scrapy:网络爬虫框架,不支持Python3;
pyspider:一个强大的爬虫系统;
cola:一个分布式爬虫框架;
portia:基于Scrapy的可视化爬虫;
restkit:Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
demiurge:基于PyQuery的爬虫微框架。 |