Python爬虫之框架Scrapy

在这里插入图片描述
Scrapy爬虫的命令行逻辑为什么Scrapy采用命令行创建和运行爬虫?
命令行(不是图形界面)更容易自动化,适合脚本控制。
本质上,Scrapy是给程序员用的,功能(而不是界面)更重要。

一、产生步骤

步骤1:建立一个Scrapy爬虫工程
用命令行在E盘的pycodes文件夹中建立一个工程python123demo在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤2:在工程中产生一个Scrapy爬虫
在这里插入图片描述
在这里插入图片描述

新增文件代码

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


class DemoSpider(scrapy.Spider):
    name = 'demo'#爬虫名称
    allowed_domains = ['python123.io']
    start_urls = ['http://python123.io/']#所爬取网页

    def parse(self, response):#parse0用于处理响应,解析内容形成字典,发现新的URL爬取请求。
        pass

步骤3:配置产生的spider爬虫(修改demo.py文件)

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


class DemoSpider(scrapy.Spider):
    name = 'demo'
    #allowed_domains = ['python123.io']
    start_urls = ['https://python123.io/ws/demo.html']

    def parse(self, response):#对返回页面进行解析和操作
        fname = response.url.split('/')[-1]
        with open(fname, "wb") as f:
            f.write(response.body)
        self.log("Saved file %s."%name)

步骤4:运行爬虫,获取网页。
在这里插入图片描述
捕获页面成功,以html格式存储在pycodes中
在这里插入图片描述
demo.py代码的完整版本

import scrapy

class DemoSpider(scrapy.Spider):
    name = 'demo'
    #allowed_domains = ['python123.io']
    def start_requests(self):
        urls = [
                'https://python123.io/ws/demo.html'
               ]
        for url in urls:
            yield scrapy.Request(url = url ,callable = self.parse())
    
    def parse(self, response):
        fname = response.url.split('/')[-1]
        with open(fname, "wb") as f:
            f.write(response.body)
        self.log("Saved file %s."%name)

二、yield关键字的使用

三、Scrapy爬虫的基本使用

1、步骤

1、创建一个工程和Spider模板
2、编写Spider
3、编写Item Pipeline
4、优化配置策略

2、Scrapy爬虫的数据类型

(1)Request类

class scrapy.http.Request()
-Request对象表示一个HTTP请求。
-由Spider生成,由Downloader执行。
在这里插入图片描述

(2)Response类

class scrapy.http.Response)
-Response对象表示一个HTTP响应。
-由Downloader生成,由Spider处理。在这里插入图片描述

(3) Item类

class scrapy.item.Item()
-Item对象表示一个从HTML页面中提取的信息内容。
-由Spider生成,由Item Pipeline处理。
-Item类似字典类型,可以按照字典类型操作。

四、Scrapy爬虫提取信息的方法

Scrapy爬虫支持多种HTML信息提取方法
-Beautiful Soup
-lxml
-re
-XPath Selector
-CSS Selector

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值