基于scrapy框架的爬影评

爬虫主程序:

  1. import scrapy
  2. from ..items import DoubanmovieItem
  3.  
  4. class MoviespiderSpider(scrapy.Spider):
  5. name = 'moviespider'
  6. allowed_domains = ['douban.com']
  7. start_urls = ['http://movie.douban.com/top250']
  8.  
  9. def parse(self, response):
  10. movie_items=response.xpath('//div[@class="item"]')
  11. for item in movie_items:
  12. #print(type(item))
  13.  
  14. movie =DoubanmovieItem()
  15. movie['rank']=item.xpath('div[@class="pic"]/em/text()').extract()
  16. movie['title']=item.xpath('div[@class="info"]/div[@class="hd"]/a/span[@class="title"][1]/text()').extract()
  17. movie['quote'] = item.xpath(
  18. 'div[@class="info"]/div[@class="bd"]/p[@class="quote"]/span[@class="inq"][1]/text()').extract()
  19. movie['star'] = item.xpath(
  20. 'div[@class="info"]/div[@class="bd"]/div[@class="star"]/span/text()').extract()
  21.  
  22. movie['src']=item.xpath(
  23. 'div[@class="pic"]/a/img/@src').extract()
  24.  
  25. yield movie
  26. pass
  27.  
  28. #取下一页的地址
  29. nextPageURL = response.xpath('//span[@class="next"]/a/@href').extract()
  30. #print(nextPageURL)
  31. if nextPageURL:
  32. url = response.urljoin(nextPageURL[-1])
  33. #print('url', url)
  34. # 发送下一页请求并调用parse()函数继续解析
  35. yield scrapy.Request(url, self.parse, dont_filter=False)
  36. pass
  37. else:
  38. print("退出")
  39. pass

items 对象

  1. import scrapy
  2.  
  3. class DoubanmovieItem(scrapy.Item):
  4. # define the fields for your item here like:
  5. # name = scrapy.Field()
  6. rank=scrapy.Field()
  7. title=scrapy.Field()
  8. quote=scrapy.Field()
  9. star=scrapy.Field()
  10. src=scrapy.Field()
  11. pass

pipelines 输出管道

  1. class DoubanmoviePipeline(object):
  2. def process_item(self, item, spider):
  3. print('电影排名:{0}'.format(item['rank'][0]))
  4. print('电影名称:{0}'.format(item['title'][0]))
  5. print('电影短评:{0}'.format(item['quote'][0]))
  6. print('评价分数:{0}'.format(item['star'][0]))
  7. print('评价人数:{0}'.format(item['star'][1]))
  1. print('图片链接:{0}'.format(item['src']))
    print('-' * 20)
  1. return item

在控制台输出的结果

可以通过爬出的图片链接,下载电影的剧照,这就另说了,也可以设置一个插入数据库的管道,将这些数据插入到数据库中

Python的scrapy之爬取豆瓣影评和排名的更多相关文章

  1. 基于python的scrapy框架爬取豆瓣电影及其可视化

    1.Scrapy框架介绍 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下: 对应在scrapy文件中有,自己增加 ...

  2. Scrapy 通过登录的方式爬取豆瓣影评数据

    Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...

  3. 【python数据挖掘】爬取豆瓣影评数据

    概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...

  4. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  5. [超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理

    爬取豆瓣电影<大侦探皮卡丘>的影评,并做词云图和关键词绘图第一步:找到评论的网页url.https://movie.douban.com/subject/26835471/comments ...

  6. Python爬虫入门:爬取豆瓣电影TOP250

    一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...

  7. Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战4)

    1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...

  8. Python的scrapy之爬取顶点小说网的所有小说

    闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...

  9. python爬虫scrapy框架——爬取伯乐在线网站文章

    一.前言  1. scrapy依赖包: 二.创建工程 1. 创建scrapy工程: scrapy staratproject ArticleSpider 2. 开始(创建)新的爬虫: cd Artic ...

随机推荐

  1. git 无法忽略Android Studio 生成的 .idea目录解决办法

    在Android Studio中导入了别的人Gradle项目,产生了 .idea文件夹, 然后git 发现了这个变动,修改了 .gitignore不起作用,仍然不能忽略这个文件夹 在项目目录里面 右键 ...

  2. 1977年提出的OSI七层模型

    OSI七层模型:   7应用层            数据用户接口,提供人操作软件的接口 6表示层            数据的表现形式,特定的功能实现,比如数据加密.数据传输的编码等,一般由软件完成 ...

  3. 如何在SAP CRM里创建和消费Web service

    Created by Wang, Jerry, last modified on Dec 19, 2014 The following steps demonstrates how to expose ...

  4. oozie说明(本文参考多处,自己留看)

    Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据 ...

  5. python UI自动化实战记录一:测试需求与测试思路

    测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一 ...

  6. 确定浏览器是否支持某些DOM模块

    var supportDOM2Core = document.implementation.hasFeature("Core","2.0"); var supp ...

  7. 【BZOJ3784】树上路径

    题目大意 给定一个\(N\)个结点的树,结点用正整数\(1..N\)编号.每条边有一个正整数权值.用\(d(a,b)\)表示从结点\(a\)到结点\(b\)路边上经过边的权值.其中要求\(a < ...

  8. 【[SDOI2008]洞穴勘测】

    题目 由于始终保证连通性于是我们可以用\(LCT\)来维护这个森林 三个操作分别是\(link,cut,findroot\) 代码 #include<iostream> #include& ...

  9. Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift(BN)

    internal covariate shift(ics):训练深度神经网络是复杂的,因为在训练过程中,每层的输入分布会随着之前层的参数变化而发生变化.所以训练需要更小的学习速度和careful参数初 ...

  10. 【转】JS gzip加密字符串并base64输出

    http://blog.csdn.net/zunwei/article/details/49886115 最近开发中遇到一些问题,关于js怎么给一个字符串进行字节流加密.下面就详细说下做法. 首先引入 ...