Scrapy爬虫框架(二):导出爬取结果

·功能描述:爬取 豆瓣 电影 TOP-250,爬取内容(电影标题,评分人数,评分)


·编辑 items.py 文件

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

import scrapy

class DoubanMovieItem(scrapy.Item):
    # 排名
    ranking = scrapy.Field()
    # 电影名称
    titles = scrapy.Field()
    # 评分
    scores = scrapy.Field()
    # 评论人数
    persons= scrapy.Field()

·编辑  文件夹spiders/ 下的 爬虫文件

from scrapy.spiders import Spider
from scrapy import Request
from Scrapy_one.items import DoubanMovieItem

#功能描述:爬取 豆瓣 电影 TOP-250,爬取内容(电影标题,评分人数,评分)

class BlogSpider(Spider):

    #爬虫名称,只有一个
    name = 'douban_Top-250'

    #伪装浏览器
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
    }

    #设置目标地址,并调用headers
    def start_requests(self):
        url = 'https://movie.douban.com/top250'
        yield Request(url, headers=self.headers)

    #根据源码 选择 爬取内容
    def parse(self, response):

        item = DoubanMovieItem()
        movies = response.xpath('//ol[@class="grid_view"]/li')#选择 内容段

        for movie in movies:#从内容段 拆分 内容
            #备注:记得使用相对路径 “.//”
            item['ranking'] = movie.xpath('.//div[@class="pic"]/em/text()').extract()#排名
            item['titles'] = movie.xpath('.//div[@class="hd"]/a/span[1]/text()').extract()#标题
            item['persons'] = movie.xpath('.//div[@class="star"]/span[4]/text()').extract()#评分人数
            item['scores'] = movie.xpath('.//div[@class="star"]/span[@class="rating_num"]/text()').extract()#评分
            yield item

        next_url = response.xpath('//span[@class="next"]/a/@href').extract()#跳转下一页的链接
        if next_url:#判断是否有下一页,如果有则跳转下一页的链接
            next_url = 'https://movie.douban.com/top250' + next_url[0]
            yield Request(next_url, headers=self.headers)


·导出csv:scrapy crawl douban_Top-250 -o douban1-Top250.csv --备注:需在项目文件夹中运行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值