使用Scrapy的基础步骤(内含代码+详解)

麻烦先学会安装Scrapy不会请百度或留言
以爬取笔趣阁小说列表为例

  • 创建一个scrapy项目
scrapy startproject test1
  • 创建该项目下的一个spider爬虫
#注意你要进入项目目录才能创建爬虫
#scrapy genspider 爬虫名 爬虫爬取的网站域名
scrapy genspider  testspider www.xbiquge.la
  • 编辑spider爬虫代码
    先要明白以下定义字段的含义

name:是每个项目唯一的名字区分不同的spider

allowed_domains:是允许爬取的域名,如果初始或后续的请求链接不是这个域名下的,则请求链接会被过滤掉

start_urls :包含了spider在启动时爬取的url列表,初始请求是由它来定义的

parse方法: 是spider的一个方法。默认情况下,被调用时start_urls里面的链接构成的请求完成下载执行后,返回的响应response就会作为唯一的参数传递给这个函数。该方法负责解析返回的响应,提取数据或者进一步生成要处理的请求

我们在parse()方法中对返回的response进行处理

rom test1.items import Test1Item
class TestspiderSpider(scrapy.Spider):
    name = 'testspider'#创建时定义好了
    allowed_domains = ['www.xbiquge.la']#创建时定义好了
    start_urls = ['http://www.xbiquge.la/xiaoshuodaquan/']#需要修改地方
    def parse(self, response):
        item = Test1Item()
        lists = response.xpath("//div[@class='novellist']//li")
        #是在Item文件中定义的一个类,后续会讲
        for i in lists:
            item['name']=i.xpath(".//a//text()").extract()[0]
            item['url']=i.xpath('.//a//@href').extract()[0]
            yield item
            #yield会将item字段传给pipeline文件稍后会将这个pipeline
            #至于yield为何物,麻烦请好好学学python
  • 使用item文件
    在获取到数据的时候,使用不同item来存放不同的数据
class ExampeItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    name=scrapy.Field()
    url=scrapy.Field()
    #使用时要创建类的实例并且为字典类型(见上方的操作)
  • pipelines文件 处理数据
    我们先要在setting文件中启动对应的pipeline
ITEM_PIPELINES = {
    'test1.pipelines.Test1Pipeline': 300,
}

其次在pipeline文件中对我们数据要做的具体操作:

class Test1Pipeline(object):
    def open_spider(self,spider):
    # 在爬虫开启的时候执行,仅执行一次
        print("*"*10)
    def process_item(self, item, spider):
    # 不return的情况下,另一个权重较低的pipeline就不会获得item 这个会一直执行
        print(item)
        #return
    def close_spider(self,spider):
     #在爬虫关闭的时候执行,仅执行一次
        print("*"*10)

#注意这里我们只输出我们访问到的所有数据,如果要存储到文件中请自行修改

  • 启动爬虫
    温馨建议:必要时可以修改setting文件的LOG_LEVEL=“WARNING” 这样启动爬虫不会跳出一大堆 默认为debug级别log信息 具体什么是log百度吧。也可以尝试一下看看修改后有什么不同
scrapy crawl testspider

以上我们一个简易Scrapy项目已经完成了,更多的细节以及操作今后慢慢细讲

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值