最近需要爬去网站的一些商品,就开始在网上找方法,本来是想着用Python做的,因为以前用Python写过一个小脚本,爬取一个文献网站上的免费文献.
步骤大概是这样的:1,先获取给定URL的html文件,然后在这个文件中用正则表达式匹配出需要的URL(可能含有分页的URL),然后再获取匹配出的URL的html,在这些html文件中会有可以下载的PDF文件的链接,然后把这些链接存到磁盘中.(这中间因为网站有防爬虫,所以中间花了点时间在模拟浏览器上).拿到链接之后,就是下载文献了,写了一个shell脚本,每次读一个链接下载,然后保存到指定的文件夹中.
这次的需求跟以前的需求有所不同,需要抓取目标网站的一些商品的信息,比上次有点复杂.花了一两天时间在网上找了好几个框架,最后决定使用webmagic基于Java的框架.
选择这个框架也是因为这个框架很方便,很容易进行二次开发,而且也集成了一些其它的工具,比如提取指定html标签的元素等.
webmagic四个主要的组件:1,downloader;2,PageProcessor;3,Scheduler;4,Pipeline.
Downloader负责从网上下载页面,PageProcessor负责解析页面,提取有用的信息,发现链接,Scheduler管理未抓取的URL以及去重,Pipeline就是存储和显示数据了,可以打印到控制台,输出到本地文件或者写入数据库.
这些组件webmagic都已经实现了,使用者只需要设计自己提取内容的规则就可以了.
附上链接https://github.com/code4craft/webmagic