一、技术选型
众所周知,针对不同的业务场景和需求选取不同的技术选型和架构方案方案。可以让我们事半功倍,提升工作效率的同时完成本职工作。而针对互联网上的数据获取需求也是一样。下面我们将介绍三种场景的爬虫数据获取需求和场景,并推荐其相应的解决方案。
1、简单需求(单文件脚本 / 基于 request 网络库及相关第三方库 )
针对一次需求和没有持续集成的要求的场景,对于这类简单的任务,不使用爬虫框架也能实现很好的效果,而且代码更少。当采用 Python 语言实现时,常用的相关依赖库有 requests 和BeautifulSoup、selenium ( Web自动化工具Selenium,内核采用WebDriver) 以及涉及到的其他相关库。其实 Selenium 是一个模拟人行为的自动化测试工具,当然也可以用来渲染动态网页,模拟登陆,滑动等,但是其依赖浏览器,且一次只能加载一个页面,无法异步渲染页面,也就限制了selenium爬虫的抓取效率。但是在页面点击,模拟登陆方面selenium 还是比较灵活的。
2、项目工程化(数据获取只是整个系统集成的一小部分、且需要持续集成优化场景)
考虑到 Python 语言及其生态的开发便捷性和快速迭代的特点,本系列主要介绍 Python 语言中知名的爬虫框架 Scrapy (后面系