Scrapy

 scary运行流程
  • spiders网页爬虫

  • items项目

  • engine引擎

  • scheduler调度器

  • downloader下载器

  • item pipelines项目管道

  • middleware中间设备,中间件

 scrapy下载

cmd —> pip install scarpy  

scrapy项目创建
  1. 在python终端使用cd切换到项目路径 

  2. 再使用 scarpy startproject ‘项目名称’来创建项目文件

  3. 创建文件后cd到文件夹中
  4. 再终端接着输入 scrapy genspider 项目名 需抓取的网站来创建项目

 新建好的项目可在spiders文件中找到,创建好的文件夹和网站尽量不要修改

创建后目录大致页如下

 创建好的db250项目中会自动生成这些内容

import scrapy


class Db250Spider(scrapy.Spider): #定义一个类 
    name = "db250"
    allowed_domains = ["movie.douban.com"] #限制爬虫在哪些域名下进行请求 有些网站会外接其它网站
    start_urls = ["https://movie.douban.com"] #可以自己改 只要在上面域名下就行

    def parse(self, response):
        pass
 setting里数据修改

 开始之前我们要先将setting里一些配置进行修改

  • 将setting里的ROBOTSTXT_OBEY改为False,否则大部分情况下爬虫不能使用

  • 在DEFAULT_REQUEST_HEADERS中加入伪装

items里数据设置
# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class DbItem(scrapy.Item):
    name = scrapy.Field()
    rate = scrapy.Field()
    commend = scrapy.Field()  #以这种形式设置想要抓取的内容
 db250代码
import scrapy
from db.items import DbItem


class Db250Spider(scrapy.Spider):
    name = "db250"
    allowed_domains = ["movie.douban.com"]
    start_urls = ["https://movie.douban.com/top250"]

    def parse(self, response): #parse里只需关注如何解析,因为scrapy会自动去请求网址
        #可以直接使用response
        items=DbItem()
        node_list=response.xpath('//div[@class="info"]')
        print(node_list)
        for i in node_list:
            items['name']=i.xpath('./div/a/span/text()').get()
            items['rate']=i.xpath('./div/div/span[@class="rating_num"]/text()').get()
            items['commend'] = i.xpath('./div/p/span[@class="inq"]/text()').get() 

            yield items

#注意items[]中的内容要与items.py里的一一对应
项目运行

可以在终端中输入 scrapy crawl db250 使程序运行,但是使用终端运行不能提取数据,我们可以写一个新的py文件作为程序的入口来进行运行 -o db250.csv 表示输出位csv文件

from scrapy import cmdline

cmdline.execute('scrapy crawl db250 -o db250.csv'.split())

Scrapy爬虫框架,入门案例(非常详细)_scrapy爬虫案例-CSDN博客

这个博主写的非常详细!大家可以看看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值