使用scrapy爬虫框架抓取伯乐在线的文章标题、标题url与发布时间
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy 使用了 Twisted异步网络库来处理网络通讯。整体架构大致如下
scrapy调度原理根据scrapy内部的调度,
第一步:创建项目scrapy startproject jobbole2,本人使用的是虚拟环境,且之前已经下载完成这个项目,输入命令之后出现如下提示。
开始创建项目第二步:创建成功之后,它会自动给出一个下一步的提示命令,如下,比根据提示键入cd jobbole2,然后再输入命令scrapy genspider my_jobbole2 jobbole.com,创建成功之后,进入到我们的编译器,我使用的是pycharm。
创建接下来的文件第三步:虚拟环境跟pycharm配置好了之后,同步目录,下载下来刚刚创建好的scrapy项目,并进入my_jobbole2.py文件里面编写爬虫代码
图1第四步:网页的解析步骤与爬虫的代码编写,这部分其实相对而言比较简单,只要熟悉了requests请求的网页采用lxml解析步骤,这部分的代码就很容易理解,如果不会的朋友建议先去学好爬虫基础,再来学习爬虫框架,这里我就不做赘述,直接上代码吧(提醒一下,scrapy不同于pyspider方便调试,建议在scrapy shell里面进行调试)。
第五步:完成上述了代码,scrapy框架相信你也了解了大概,多看看图1理解这个框架的爬取思路,python之禅为简单、优雅,理解每个文件的分工,这种思路下去,你会接触的队列,生产者消费者模式,或者代理池之类的其实思维都是py文件之间相互调用,每个文件专门负责一块。最后贴一下成功的代码。
网友评论