这两天学习了scrapy框架,也是很头疼呀,一路都不是很顺利,爬取豆瓣时,还被封了IP,不过终于能够熟悉这个框架了。先一步步介绍吧。

第一,安装scrapy库,说实话,一开始我就直接pip install scrapy,但是一直报错,只能默默地找资料,按步骤慢慢来。先进下面这个网址,找到Twisted、pywin32、zope.interface、pyopenSSL。

https://pypi.org/pypi.org

找到这四个包下载到本地,同时要注意下载想要的版本,看下图,我们注意一下第四个包,它下载后的格式本应该和上面三个一样,以whl结尾,但是我们在这里将扩展名改为zip,并解压,会出现两个文件夹,我们将OpenSSL这个文件夹放在python的工具包中,然后便可以在cmd进行pip install scrapy。因为我之前已经有lxml这个包,不需要再下载,大家可以pip install lxml,然后安装scrapy。




python 写的spc python做spc_xml


安装好文件后,我们便可以开始进行相应的操作。首先介绍几个命令,是在cmd执行的,我们打开cmd,找到我们想要的建立项目的目录,但我们有简便方法,按住shift不放,点击我们想要开始建project的文件夹,右键,我们会看到前几行有一个在此处打开命令窗口,很方便,不用在cmd里cd。


python 写的spc python做spc_python 写csv scrapy_02


注意一下,这里的最后一步的网址填写,我们可以将引号省去,也不需要写得很详细,因为后期可以在文件中改动,这里只是一个框架。

这样,我们的爬取框架就建好了,我们看一下pycharm里面的project,除了main.py和cnki.csv文件是后添加的以为,其他都是刚刚在上述操作中生成的。


python 写的spc python做spc_xml_03


在这里,我们先不用着急开始做什么,因为看到这么多文件,可能会有些慌张,不知道从哪里开始下手。


python 写的spc python做spc_python 写csv scrapy_04


这张图是scrapy官网上的一张流程图,根据相关的资料学习,我自己做了一些分析和理解。首先是Spiders将requests通过Scrapy Engine交给Scheduler(调度器),然后Scheduler通过Scrapy Engine将requests传给Downloader(下载器),Downloader(下载器)便从internet上下载相应的请求,之后将internet的Response通过Scrapy Engine又传回Spider,经过Spider的清洗,将Item通过Scrapy Engine传到Item做相关提取工作,最后将Item经过Pipeline进行储存,然后再进行不断的循环。

举个例子来说吧,我们现在想要爬取知网的信息,首先,我们在搜文章时,发现一个页面有很多篇文章,见下图,我们的需求是要将找到相应的网址,以及每一篇文章的标题、关键词和链接爬取下来,那我们首先将Spider里面的网址放入调度器,然后调度器给Downloader,从网页上下载相关信息放入response,传给到Spider中,我们再用xpath提取respones里面的Item,再将item经过pipeline可以做一些储存之类的,这是我的理解,可能也有错。


python 写的spc python做spc_python 写的spc_05


理论部分暂时先这样,之后再补充更进一步的知识。之前也分享了其他简单爬虫。

小菇凉:python爬取京东评论zhuanlan.zhihu.com

小菇凉:三行代码爬取网页tablezhuanlan.zhihu.com

python 写的spc python做spc_python_06