您的位置:首页 > 编程语言 > Python开发

python爬虫笔记 --------scrapy框架(2)

2016-11-10 23:01 405 查看

Scrapy入门:

                1、创建项目

                                    开始爬取之前,进入打算存储代码的目录,运行:

scrapy startproject tutorial


                          该命令将会创建包含下列内容的
tutorial
目录:

                         


                           这些文章分别是:

                               

 

  

                2、定义Item

                                          Item 是保存爬取到的数据的容器;其使用方法和python字典类似,并且提供了额外保护机制来避免

                            拼写错误导致的未 定义字段错误。

                            编辑
tutorial
目录中的
items.py
文件:  

                            

import scrapy
class DmozItem(scrapy.Item):
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field()


                  



                   3、编写第一个爬虫(Spider)

                                 Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。

                         编写以下Spider代码,保存在
tutorial/spiders
目录下的
dmoz_spider.py
文件中:

import scrapy
class DmozSpider(scrapy.spider.Spider):
name="dmoz"
allowed_domains=["dmoz.org"]
start_urls=[
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
defparse(self,response):
filename=response.url.split("/")[-2]
with open(filename,'wb') as f:
f.write(response.body)


                                
name
: 用于区别Spider。该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。

                         allowed_domains:可选。包含了spider允许爬取的域名(domain)列表(list)。

                        
start_urls
:
包含了Spider在启动时进行爬取的url列表。因此,第一个被获取到的页面将是其中之一。

                                                    后续的URL则 从初始的URL获取到的数据中提取。

                        
parse:
是spider的一个方法。被调用时,每个初始URL完成下载后生成的
Response
对象将会作为唯一

                                       的参数传递给该函数。该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需

                                       要进一步处理的URL的
Response
对象。

                      执行时发生的事情:Scrapy为Spider的
start_urls
属性中的每个URL创建了 scrapy.Request对象,

                                                          并将
parse
方法作为回调函数(callback)赋值给了Request。

                                                          Request对象经过调度,执行生成
scrapy.http.Request

对象并送回给spider
parse
方法。

                   4、爬取

                                 进入根目录执行下面命令启动spider:

                         scrapy crawl dmoz

                         dmoz为Spider中name属性

                        


                                                         

先写到这里吧,希望能一天天地进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐