爬虫课程笔记(七)scrapy入门与深入

Scrapy

为什么学习scrapy?
在这里插入图片描述

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取

Scrapy 使用了Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。

http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html

异步与非阻塞区别

在这里插入图片描述
异步:调用在发出之后,这个调用就直接返回,不管有无结果
非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。

爬虫流程

在这里插入图片描述
在这里插入图片描述
scrapy爬虫流程
在这里插入图片描述
在这里插入图片描述

入门

创建一个scrapy项目

scrapy startproject mySpider

命令:

scrapy startproject +<项目名字>
scrapy startproject myspider

在这里插入图片描述

生成一个爬虫

scrapy genspider baidu "baidu.com”

命令:scrapy genspider  +<爬虫名字> + <允许爬取的域名>
	   scrapy genspider itcast “itcast.cn”

在这里插入图片描述

提取数据

完善spider,使用xpath等方法
在这里插入图片描述

保存数据

pipeline中保存数据

在这里插入图片描述

去掉注释开启pipeline
在这里插入图片描述
spider的数据传到pipeline
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

demo

# -*- coding: utf-8 -*-
import scrapy


class ItcastSpider(scrapy.Spider):
    name = 'itcast'  #爬虫名
    allowed_domains = ['itcast.cn']  #允许爬取的范围
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml']  #最开始请求的url地址

    def parse(self, response):
        #处理start_url地址对应的响应
        # ret1 = response.xpath("//div[@class='tea_con']//h30/text()").extract()
        # print(ret1)

        #分组
        li_list = response.xpath("//div[@class='tea_con']//li")
        for li in li_list:
            item = {
   }
            item["name"]=li.xpath(".//h3/text()").extract_first()
            item["title"] = li.xpath(".//h4/text()").extract_first()
            # print(item)
            #Request, BaseItem, dict or None
            yield item

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html


class MyspiderPipeline(object):
    def process_item(self, item, spider):
        #TODO
        item["hello"] = "world"
        # print(item)
        return item

class MyspiderPipeline1(object):
    def process_item(self, item
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值