Scrapy入门案例,抓取美剧天堂的前100最新

  Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

1.下载安装

我使用的是Anaconda3,相应的python版本是3.7

pip install scarpy

2.简单案例

抓取美剧天堂的前100最新,如下图所示:

步骤:

(1)cmd进入需要创建项目的文件夹

cd E://ScrapyTest

(2)创建工程

scrapy startproject movie

(3)创建爬虫程序

cd movie // 进入工程目录
scrapy genspider meiju meijutt.com //创建爬虫程序

执行代码,系统会自动创建文件目录和文件,如下图所示:

文件说明:

scrapy.cfg  项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)

items.py    设置数据存储模板,用于结构化数据,如:Django的Model

pipelines    数据处理行为,如:一般结构化的数据持久化

settings.py 配置文件,如:递归的层数、并发数,延迟下载等

spiders      爬虫目录,如:创建文件,编写爬虫规则

注意:一般创建爬虫文件时,以网站域名命名

(4)设置数据模板(每条数据格式)

#items.py
import scrapy
 
 
class MovieItem(scrapy.Item):
    # define the fields for your item here like:
    name = scrapy.Field()

(5)爬虫主类

#meiju.py
# -*- coding: utf-8 -*-
import scrapy
 
from movie.items import MovieItem
 
 
class MeijuSpider(scrapy.Spider):
    name = 'meiju'
    allowed_domains = ['meijutt.com']
    start_urls = ['http://www.meijutt.com/new100.html']
 
    def parse(self, response):
        movies = response.xpath('//ul[@class="top-list  fn-clear"]/li')
        for each_movie in movies:
            item = MovieItem()
            item['name'] = each_movie.xpath('./h5/a/@title').extract()[0]
            yield item

(6)设置配置文件

#settings.py
添加内容
ITEM_PIPELINES = {'movie.pipelines.MoviePipeline':100}

(7)抓取后数据处理程序

#pipelines.py
# -*- coding: utf-8 -*-
 
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
 
 
class MoviePipeline(object):
    def process_item(self, item, spider):
        with open("E://my_meiju.txt",'a') as fp:
            print(type(item['name']))
            fp.write(item['name'] + "\n")

(8)执行爬虫程序

cd movie
scrapy crawl meiju
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值