Python数据爬虫学习笔记(15)Scrapy常见命令、项目文件介绍以及常见错误

一、Scrapy常见命令提示符CMD命令:

(1)scrapy -h 查看指令帮助。

(2)scrapy fetch http://baidu.com 直接爬取特定网页。

(3)scrapy runspider scrapytest.py  运行特定爬虫(前提要使用cd .\XXX进入文件所在目录)。

(4)scrapy shell http://www.baidu.com --nolog  进入Python的Shell模式:(>>> exit()可以退出)。

(5)scrapy startproject firstScrapy 新建爬虫项目((前提要使用cd .\XXX进入项目所在目录))  。

(6)scrapy version 查看scrapy版本。

(7)scrapy view http://news.163.com 下载某个网页并用浏览器查看

(8)scrapy settings scrapy设置。

进入一个爬虫项目后:(cd .\项目文件夹)
(1)scrapy bench 测试程序。

(2)scrapy genspider -l 查看当前项目中有哪些爬虫模板basic基础模板 crawl自动爬虫模板 csvfeed处理CSV  xmlfeed处理XML。

(3)scrapy genspider -t basic ZYH baidu.com 创建爬虫文件,限制只能爬百度。

(4)scrapy check ZYH 测试爬虫。

(5)scrapy crawl 运行爬虫。

(6)scrapy list 查看当前项目下可以使用的爬虫文件。

(7)scrapy edit ZYH 调用编辑器编辑爬虫文件。

(8)scrapy parse http://www.baidu.com 获取指定URL网址,并且进行处理和分析。

二、Scrapy项目文件介绍:

(1)__init__.py 初始化文件。

(2)items.py   目标文件,设定爬取内容。

(3)pipelines.py 数据的后续处理文件。

(4)settings.py 爬虫设置,如代理服务器,伪装浏览器,开启关闭cookies,怎样开启pipeline等。

(5)spiders:爬虫文件夹。

三、Scrapy测试代码:

from scrapy.spiders import Spider
class FirstSpider():
    name="first"
    allowed_domains=["baidu.com"] #允许爬的地址
    start_urls=["http://www.baidu.com",] #起始域名
    def parse(self,response):
        pass  #pass:不执行任何事情,只是占位符

四、爬虫运行常见错误:

1、出现了403的错误,如下所示:

DEBUG:Crawled(403)<GET XXXXX网址> (referer: None)

原因是代理被禁止访问,解决方法是在settings.py配置文件里修改不设置代理:

DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
}

2、出现了Forbidden by robots.txt的错误,如下:
[scrapy] DEBUG: Forbidden by robots.txt: <GET XXXX网址>
原因是scrapy是遵守robot协议的,在访问网址前会先访问robot.txt来查看自己是否有权限访问。如果网站不允许被爬,就不能访问。
解决方法,在settings.py配置文件里设置不遵守robot协议:

ROBOTSTXT_OBEY = False

3、为了启用一个Item Pipeline组件,你必须将它的类添加到 ITEM_PIPELINES 配置,在settings.py配置文件里修改:
 

ITEM_PIPELINES = {
   'tutorial.pipelines.TutorialPipeline': 300,
}
 

猜你喜欢

转载自blog.csdn.net/Smart3S/article/details/82934261