由于项目需要,最近开始学习和使用Python写web爬虫。要理解网络爬虫最好的例子就是使用最多的搜索引擎,网络爬虫是搜索引擎最重要的一部分。搜索引擎根据用户的输入关键字,使用一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列中并最终呈现给用户。
实际项目中,我们往往不需要爬取所有网站的源码,而只是对感兴趣的某个或某几个网站做定向爬取,爬取的内容也不仅仅是URL,而是根据具体的项目需求而定。
项目背景
根据用户关键字爬取www.pnas.org等6个文献搜索引擎的检索结果并记录文献标题、作者、时间、邮件和URL等信息,使用Windows桌面软件以列表的形式呈现符合检索关键字的条目。
方案选取
根据背景描述,至少存在两种可选择方案:
- API,如果网站为用户提供了开放的API,那么事情变得简单很多,根据用户关键字调用相应的API就能获取数据库中文献相关信息
- 网络爬虫,如果网站没有提供API,那么只能通过爬虫的方式获取的想要的信息。
由于6个目标网站都没有提供相应的API,所以只能硬着头皮选择方案2。根据需求可以发现,项目涉及到两方面的技术:爬虫和windows GUI。虽然C/C++,Java,Python,Ruby等等都能够写爬虫,但是从开发周期和开发成本的角度出发,Python有Scrapy这种强大的网络爬