Python的scrapy之爬取豆瓣影评和排名
基于scrapy框架的爬影评
爬虫主程序:
- import scrapy
- from ..items import DoubanmovieItem
- class MoviespiderSpider(scrapy.Spider):
- name = 'moviespider'
- allowed_domains = ['douban.com']
- start_urls = ['http://movie.douban.com/top250']
- def parse(self, response):
- movie_items=response.xpath('//div[@class="item"]')
- for item in movie_items:
- #print(type(item))
- movie =DoubanmovieItem()
- movie['rank']=item.xpath('div[@class="pic"]/em/text()').extract()
- movie['title']=item.xpath('div[@class="info"]/div[@class="hd"]/a/span[@class="title"][1]/text()').extract()
- movie['quote'] = item.xpath(
- 'div[@class="info"]/div[@class="bd"]/p[@class="quote"]/span[@class="inq"][1]/text()').extract()
- movie['star'] = item.xpath(
- 'div[@class="info"]/div[@class="bd"]/div[@class="star"]/span/text()').extract()
- movie['src']=item.xpath(
- 'div[@class="pic"]/a/img/@src').extract()
- yield movie
- pass
- #取下一页的地址
- nextPageURL = response.xpath('//span[@class="next"]/a/@href').extract()
- #print(nextPageURL)
- if nextPageURL:
- url = response.urljoin(nextPageURL[-1])
- #print('url', url)
- # 发送下一页请求并调用parse()函数继续解析
- yield scrapy.Request(url, self.parse, dont_filter=False)
- pass
- else:
- print("退出")
- pass
items 对象
- import scrapy
- class DoubanmovieItem(scrapy.Item):
- # define the fields for your item here like:
- # name = scrapy.Field()
- rank=scrapy.Field()
- title=scrapy.Field()
- quote=scrapy.Field()
- star=scrapy.Field()
- src=scrapy.Field()
- pass
pipelines 输出管道
- class DoubanmoviePipeline(object):
- def process_item(self, item, spider):
- print('电影排名:{0}'.format(item['rank'][0]))
- print('电影名称:{0}'.format(item['title'][0]))
- print('电影短评:{0}'.format(item['quote'][0]))
- print('评价分数:{0}'.format(item['star'][0]))
- print('评价人数:{0}'.format(item['star'][1]))
- print('图片链接:{0}'.format(item['src']))
print('-' * 20)
- return item
在控制台输出的结果
可以通过爬出的图片链接,下载电影的剧照,这就另说了,也可以设置一个插入数据库的管道,将这些数据插入到数据库中
Python的scrapy之爬取豆瓣影评和排名的更多相关文章
- 基于python的scrapy框架爬取豆瓣电影及其可视化
1.Scrapy框架介绍 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下: 对应在scrapy文件中有,自己增加 ...
- Scrapy 通过登录的方式爬取豆瓣影评数据
Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...
- 【python数据挖掘】爬取豆瓣影评数据
概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- [超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理
爬取豆瓣电影<大侦探皮卡丘>的影评,并做词云图和关键词绘图第一步:找到评论的网页url.https://movie.douban.com/subject/26835471/comments ...
- Python爬虫入门:爬取豆瓣电影TOP250
一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...
- Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战4)
1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...
- Python的scrapy之爬取顶点小说网的所有小说
闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...
- python爬虫scrapy框架——爬取伯乐在线网站文章
一.前言 1. scrapy依赖包: 二.创建工程 1. 创建scrapy工程: scrapy staratproject ArticleSpider 2. 开始(创建)新的爬虫: cd Artic ...
随机推荐
- git 无法忽略Android Studio 生成的 .idea目录解决办法
在Android Studio中导入了别的人Gradle项目,产生了 .idea文件夹, 然后git 发现了这个变动,修改了 .gitignore不起作用,仍然不能忽略这个文件夹 在项目目录里面 右键 ...
- 1977年提出的OSI七层模型
OSI七层模型: 7应用层 数据用户接口,提供人操作软件的接口 6表示层 数据的表现形式,特定的功能实现,比如数据加密.数据传输的编码等,一般由软件完成 ...
- 如何在SAP CRM里创建和消费Web service
Created by Wang, Jerry, last modified on Dec 19, 2014 The following steps demonstrates how to expose ...
- oozie说明(本文参考多处,自己留看)
Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据 ...
- python UI自动化实战记录一:测试需求与测试思路
测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一 ...
- 确定浏览器是否支持某些DOM模块
var supportDOM2Core = document.implementation.hasFeature("Core","2.0"); var supp ...
- 【BZOJ3784】树上路径
题目大意 给定一个\(N\)个结点的树,结点用正整数\(1..N\)编号.每条边有一个正整数权值.用\(d(a,b)\)表示从结点\(a\)到结点\(b\)路边上经过边的权值.其中要求\(a < ...
- 【[SDOI2008]洞穴勘测】
题目 由于始终保证连通性于是我们可以用\(LCT\)来维护这个森林 三个操作分别是\(link,cut,findroot\) 代码 #include<iostream> #include& ...
- Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift(BN)
internal covariate shift(ics):训练深度神经网络是复杂的,因为在训练过程中,每层的输入分布会随着之前层的参数变化而发生变化.所以训练需要更小的学习速度和careful参数初 ...
- 【转】JS gzip加密字符串并base64输出
http://blog.csdn.net/zunwei/article/details/49886115 最近开发中遇到一些问题,关于js怎么给一个字符串进行字节流加密.下面就详细说下做法. 首先引入 ...