python scrapy包的安装及简单使用

目录

 

scrapy简介:

Scrapy架构图(绿线是数据流向):

安装方式:

自动生成项目文件:

scrapy简单测试:

标准的爬虫项目:

有问题留言,我尽力帮助


scrapy简介:

Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试

Scrapy架构图(绿线是数据流向):

Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,

Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.

Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。

Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

安装方式:

 这里选择安装在了python安装文件夹内,而不是项目内

第二中方式:去官网下载安装包 ,Terminal窗口cmd命令定位到该文件夹,pip install 安装包

安装后,新建文件任意名称,如引用不报错,及安装成功

自动生成项目文件:

使用 scrapy startproject name 自动创建项目

如果出现 scrapy 既不是项目内也不是项目外。。。。,需要你去配置环境变量。

环境变量及是在windows系统中为一个程序提供路径,这样就可以直接调用。下面是我的安装位置。在path中添加即可。

命令运行后的文件内容,至于都是什么,大家可以看scrapy中文,在原官网的中文翻译已经很久没更新了,而且你下载他的例子也不能运行,打开他的reademe文件,可以看到说明部分网站已经停用。下面是国内中文连接http://www.scrapyd.cn/doc/139.html

scrapy简单测试:

随意创建py文件如下

# -*- coding: utf-8 -*-
import scrapy
class mingyanSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://lab.scrapyd.cn/',
    ]

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                '内容': quote.css('span.text::text').extract_first(),
                '作者': quote.xpath('span/small/text()').extract_first(),
            }

        next_page = response.css('li.next a::attr("href")').extract_first()
        if next_page is not None:
            yield scrapy.Request(next_page, self.parse)

运行指令: runspider mingyanSpider.py,运行你创建的蜘蛛。-o mingyan.json 将刚才爬到的内容存到json中。


D:\python\Scrapy1>scrapy runspider mingyanSpider.py -o mingyan.csv

标准的爬虫项目:

在spider下面编写py文件

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

class DmozSpider(scrapy.spiders.Spider):
    name = "mingyan2"

    def start_requests(self):
        urls = [
            'http://lab.scrapyd.cn/page/1/',
            'http://lab.scrapyd.cn/page/2/',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'mingyan-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('保存文件: %s' % filename)

运行命令:scrapy crawl mingyan2 即可,如果出现

Unknown command: crawl 提示 ,说明cmd路径不对,要定位到含有scrapy.cfg的文件夹。例如我的项目,就可以运行了。

爬虫结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海人001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值