Windows 10家庭中文版,Python 3.6.4,Scrapy 1.5.0,
在创建了爬虫程序后,就可以运行爬虫程序了。Scrapy中介绍了几种运行爬虫程序的方式,列举如下:
-命令行工具之scrapy runspider(全局命令)
-命令行工具之scrapy crawl(项目级命令)
-scrapy.crawler.CrawlerProcess
-scrapy.crawler.CrawlerRunner
注意,当系统中同时存在Python 2、Python 3时,孤的电脑直接执行scrapy命令使用的是Python 2,此时,需要在scrapy命令前添加“python3 -m”才可以使用Python 3,因此,请使用virtualenv建立虚拟环境运行scrapy等各种程序。
方式一:scrapy runspider命令(全局)
语法:scrapy runspider
还有一些配置项,可以使用scrapy runspider -h查看。
示例程序:文件名为baidu_com.py
1 #-*- coding: utf-8 -*-
2 importscrapy3
4 classBaiduComSpider(scrapy.Spider):5 name = 'baidu.com'
6 allowed_domains = ['www.baidu.com']7 start_urls = ['https://www.baidu.com/']8
9 defparse(self, response):10 yield{11 'title': response.xpath('//title/text()').extract_first()12 }
parse函数使用response.xpath获取网页
的文本:方式二:scrapy crawl(项目级)
crawl是项目级命令,因此只能在某个Scrapy项目中使用。那么,首先创建项目test070401:
使用tree命令查看创建的项目的结构:
刚刚创建的Scrapy项目的spiders目录中只有__init__.py文件,那么,将之前创建的baidu_com.py拷贝到此文件中:
现在,可以在项目test070401中使用crawl命令执行爬虫程序了。且慢,先看看crawl的语法:
scrapy crawl
注意,是而不是runspider命令的,准确的说是一个 爬虫程序的名称——爬虫类里面的name属性(必须required,且在项目中具有唯一性uniq