Python爬虫中Scrapy框架应用非常广泛,经常被人用于属于挖掘、检测以及自动化测试类项目,为啥说Scrapy框架作为半成品我们又该如何利用好呢 ?下面的实战案例值得大家看看。
目录:
1、Scrapy框架之命令行
2、项目实现
Scrapy框架之命令行
Scrapy是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。
Scrapy爬虫的常用命令:
scrapy[option][args]#command为Scrapy命令
常用命令:(图1)
至于为什么要用命令行,主要是我们用命令行更方便操作,也适合自动化和脚本控制。至于用Scrapy框架,一般也是较大型的项目,程序员对于命令行也更容易上手。
首先介绍一下相关文件的作用,方便我们到时候修改相关代码。
scrapy.cfg:部署Scrapy爬虫的配置文件
demo:Scrapy框架的用户自定义Python代码
其中,在项目文件根目录里面的demo文件中,有如下文件以及相关的作用:
init.py:初始化脚本
items.py:Items代码模板(继承类)
middlewares.py:Middlewares代码模板(继承类)
Pipelines.py:Pipelines代码模块(继承类)
settings.py:Scrapy爬虫的配置文件(优化需要改动)
spiders:代码模板目录(继承类)
在Spider文件目录下包含如下文件:
init.py:初始文件。无需修改
_pycache:缓存目录,无需修改
项目实现
接下来我们开始第一次的实操,大致步骤如下:
1、建立一个Scrapy爬虫工程
2、在工程中产生一个Scrapy爬虫
3、配置产生的spider爬虫
4、运行爬虫,获取网页
1、新建项目
首先,我们得先新建一个项目文件。
这里需要我们打开Git,至于Git的安装以及简单使用我们之前在折腾博客时有了解过:用Hexo+Github Pages搭建私人博客(第二站)
首先打开Git定位到你要爬虫项目的地址:
比如小编我是要定位到E盘,则输入cd E:(图2)
定位到目标地址后,我们便可以开始新建项目啦~
To:dir命令为显示目录和子目录的列表.
2、新建Scrapy
接下来我们输入如下命令新建一个名为newdemo的爬虫项目:
scrapy startproject newdemo
项目生成后我们可以看见在根目录生成了一个项目文件,也是叫做newdemo,那么接下来我们需要对其中的文件进行编辑。(图3)
3、配置Spider爬虫
接下来我们需要输入如下命令:
scrapy genspider demo python123.io
相关运行结果如下:(图4)
然后会在newdemo\spiders目录下生成一个demo.py文件 其中,parse(用于处理响应,解析内容形成字典,发现新的URL爬取请求)(图5)
修改demo文件里面的代码,修改后如下:
import scrapy
#继承Scrapy.Spider类的子类
class DemoSpider(scrapy.Spider):
name = 'demo'#当前爬虫命名为demo
#allowed_domains = ['python123.io'] #用户在命令行提交给爬虫的域名
start_urls = ['http://python123.io/ws/demo.html']#爬取内容的初始页面
#parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求
def parse(self, response):
fname=response.url.split('/')[-1]
with open (fname,'wb') as f:
f.write(response.body)
self.log('save file %s' % name)
4、运行项目
最后一步便是运行该爬虫项目,命令为:
scrapy crawl demo
相关运行结果如下:(图6)
直到最后在newdemo文件目录下出现demo.html文件,说明此项目运行成功。
打开demo.html文件显示如下:(图7)