Scrapy系列之爬取豆瓣电影

  每日一练,每日一博。

  Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

1.确定目标网站:豆瓣电影 http://movie.douban.com/top250

2.创建Scrapy项目: scrapy startproject doubanmovie

3.配置settings.py文件

  

BOT_NAME = ‘doubanmovie‘

SPIDER_MODULES = [‘doubanmovie.spiders‘]
NEWSPIDER_MODULE = ‘doubanmovie.spiders‘

USER_AGENT = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5‘

FEED_URI = u‘file:///G:/program/doubanmovie/douban.csv‘  #将抓取的数据存放到douban.csv文件中
FEED_FORMAT = ‘CSV‘

3.定义数据items.py:

  

from scrapy import Item,Field

class DoubanmovieItem(Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = Field()      #标题--电影名
    movieInfo = Field()  #电影信息
    star = Field()     #电影评分
    quote = Field()     #名句

4.创建爬虫doubanspider.py:

  

import scrapy
from scrapy.spiders import CrawlSpider
from scrapy.http import Request
from scrapy.selector import Selector
from doubanmovie.items import DoubanmovieItem

class Douban(CrawlSpider):
    name = "douban"
    redis_key = ‘douban:start_urls‘
    start_urls = [‘http://movie.douban.com/top250‘]

    url = ‘http://movie.douban.com/top250‘

    def parse(self,response):
        # print response.body
        item = DoubanmovieItem()
        selector = Selector(response)
        Movies = selector.xpath(‘//div[@class="info"]‘)
        for eachMoive in Movies:
            title = eachMoive.xpath(‘div[@class="hd"]/a/span/text()‘).extract()
            fullTitle = ‘‘
            for each in title:
                fullTitle += each
            movieInfo = eachMoive.xpath(‘div[@class="bd"]/p/text()‘).extract()
            star = eachMoive.xpath(‘div[@class="bd"]/div[@class="star"]/span/em/text()‘).extract()[0]
            quote = eachMoive.xpath(‘div[@class="bd"]/p[@class="quote"]/span/text()‘).extract()
            #quote可能为空,因此需要先进行判断
            if quote:
                quote = quote[0]
            else:
                quote = ‘‘
            item[‘title‘] = fullTitle
            item[‘movieInfo‘] = ‘;‘.join(movieInfo)
            item[‘star‘] = star
            item[‘quote‘] = quote
            yield item
        nextLink = selector.xpath(‘//span[@class="next"]/link/@href‘).extract()
        #第10页是最后一页,没有下一页的链接
        if nextLink:
            nextLink = nextLink[0]
            print nextLink
            yield Request(self.url + nextLink,callback=self.parse)

5.爬取结果:如果出现编码问题,在excel文件中选择“utf-8”的编码保存文件即可

  

  

  

时间: 2024-08-03 23:49:40

Scrapy系列之爬取豆瓣电影的相关文章

03_使用scrapy框架爬取豆瓣电影TOP250

前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关命令以及理解框架各部分的作用. 1.本次目标 爬取豆瓣电影TOP250的信息,将得到的数据保存到mongoDB中. 2.准备工作 需要安装好scrapy以及mongoDB,安装步骤这里不做赘述.(这里最好是先了解scrapy框架各个部分的基本作用和基础知识,这样方便后面的内容的理解.scrapy文档

scrapy爬取豆瓣电影top250

1 # -*- coding: utf-8 -*- 2 # scrapy爬取豆瓣电影top250 3 4 import scrapy 5 from douban.items import DoubanItem 6 7 8 class DoubanspiderSpider(scrapy.Spider): 9 name = "doubanspider" 10 # allowed_domains = ["movie.douban.com/top250"]注意这里的主页限制

运维学python之爬虫高级篇(五)scrapy爬取豆瓣电影TOP250

对于scrapy我们前面已经介绍了简单的应用,今天我们用一个完整的例子,爬取豆瓣电影TOP250来做一个小的练习,把scrapy阶段做一个总结. 1 环境配置 语言:Python 3.6.1 IDE: Pycharm 浏览器:firefox 爬虫框架:Scrapy 1.5.0 操作系统:Windows 10 家庭中文版 2 爬取前分析 2.1 需要保存的数据 首先确定我们要获取的内容,在items中定义字段,来将非结构化数据生成结构化数据,获取的内容主要包括:排名.电影名称.得分.评论人数.如下

团队-爬取豆瓣电影TOP250-需求分析

需求:爬取豆瓣电影TOP250 *向用户展示电影的排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息 实现思路: 分析豆瓣电影TOP250的url规则, 编写模块获取相关url 获取全部相关页面的html代码 分析html中有关"排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息"的标签 结合第三方工具包实现信息的提取 编写将"搜集信息"展示出来的模块

团队-Python 爬取豆瓣电影top250-需求分析

需求:爬取豆瓣电影TOP250 *向用户展示电影的排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息 实现思路: 分析豆瓣电影TOP250的url规则, 编写模块获取相关url 获取全部相关页面的html代码 分析html中有关"排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息"的标签 结合第三方工具包实现信息的提取 编写将"搜集信息"展示出来的模块

《团队-爬取豆瓣电影TOP250-成员简介及分工》

团队项目<爬取豆瓣电影TOP250>开发人员之一:张晓亮,性别男,15级软件技术专业学生,喜欢爱书和浏览网页信息.掌握的知识:Java语言开发,熟悉Python,C等开发语言.了解HTML5,CSS3,Javasprict等前端开发知识.可以熟练使用eclipse,Sequel Pro等软件开发工具. 在本次开发中担任:系统分析.对系统功能需求分析.用户体验设计进行归拢.对系统进度的控制,风险评估进有把控和人员的配置等

【转】爬取豆瓣电影top250提取电影分类进行数据分析

一.爬取网页,获取需要内容 我们今天要爬取的是豆瓣电影top250页面如下所示: 我们需要的是里面的电影分类,通过查看源代码观察可以分析出我们需要的东西.直接进入主题吧! 知道我们需要的内容在哪里了,接下来就使用我们python强大的request库先获取网页内容下来吧!获取内容后,再使用一个好用的lxml库来分析网页内容,然后获取我们的内容就可以做下一步操作了.先贴出使用request库和lxml分析的代码 1 def get_page(i): 2 url = 'https://movie.d

第一个nodejs爬虫:爬取豆瓣电影图片

第一个nodejs爬虫:爬取豆瓣电影图片存入本地: 首先在命令行下 npm install request cheerio express -save; 代码: var http = require('https'); //使用https模块 var fs = require('fs');//文件读写 var cheerio = require('cheerio');//jquery写法获取所得页面dom元素 var request = require('request');//发送reques

团队-爬取豆瓣电影Top250-项目总结

团队名称:极限定理 项目名称:爬取豆瓣电影Top250 组长:邵文强 成员:张晓亮.潘新宇.邵翰庆.宁培强.李国峰 关于功能:我们所做的是一个能够爬取豆瓣电影网的前250的排名程序,针对电影类别查询,统计,整合. 需求分析阶段:这个只是一个很小的程序,目的是为了帮助一部分懒人,当他们想找一下好看的电影的时候,又不想通过打开网页来一个一个翻,可以通过使用我们所做的一个小的程序很快爬取到前250的电影供参考,而且还有影片介绍等等可以进一步了解影片,可以供参考. 软件设计阶段: 分析设计:需求分析,项