Scrapy 粗略爬取豆瓣影视相关信息

douban.py

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

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from crawl_douban.items import CrawlDoubanItem

class DoubanSpider(CrawlSpider):
    name = 'douban'
    allowed_domains = ['movie.douban.com']
    start_urls = ['https://movie.douban.com/subject/1292052/']
    rules = (
        Rule(LinkExtractor(allow=r'\/subject\/\d+\/\?'), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        movie_list=[]
        for each in response.xpath("//div[@id='content']"):
            item=CrawlDoubanItem()
            item['Director']=each.xpath(".//span/a[contains(@rel,'v:directedBy')]/text()").extract()[0]
            item['MovieName']=each.xpath("//span[@property='v:itemreviewed']/text()").extract()[0]
            item['Type']=each.xpath(".//span[@property='v:genre']/text()").extract()
            item['Year']=each.xpath(".//span[@class='year']/text()").extract()[0][1:-1]
            item['Grade']=each.xpath("//div[@id='content']//strong[@class='ll rating_num']/text()").extract()[0]
            movie_list.append(item)
            yield item

        return movie_list

pinelines.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

import json
class CrawlDoubanPipeline(object):
    def __init__(self):
        self.output=open('movie.json','w')
    def process_item(self, item, spider):
        jsontext=json.dumps(dict(item))+',\n'
        self.output.write(jsontext)
        return item
    def close_spider(self,spider):
        self.output.close()

导出成CSV格式:


一共1W8+


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值