使用Scrapy爬取豆瓣电影Top250

鲁迅说,豆瓣排行榜这么多,不爬一爬可惜了.

第一步:安装Scrapy

安装命令:

pip3 install scrapy

win用户一般来说第一次都不会太顺利。(我不会告诉你我也装了3个小时)
所以,本文结束。

这里是另外一种win7的安装方式,传说该作者是一次通过的http://www.scrapyd.cn/doc/124.html

其实本人觉得在无数次安装失败提示当中,主要是因为依赖库
Twisted-21.2.0-py3-none-any.whl文件下载失败,毕竟它有3.2M,其他的文件都挺小的,如果先安装了Twisted-21.2.0-py3-none-any.whl的话,成功的概率就会提升很大了。

该安装包的百度云链接附上
链接:https://pan.baidu.com/s/1TqThqGZaFqlu_jEnUrkLPQ
提取码:7733

安装Twisted命令:

pip3 install Twisted文件路径.whl(记得cd进去)

第二:新建爬虫项目

1,创建项目
命令:

scrapy startproject 你的项目名称

2,确定目标,创建字段

​ 打开 mySpider 目录下的 items.py。
​ Item 定义结构化数据字段,用来保存爬取到的数据

import scrapyclass DoubanItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()name = scrapy.Field()  # 电影名称,中文introInfo = scrapy.Field()  # 主演人物介绍信息time = scrapy.Field()  # 上映时间score = scrapy.Field()  # 评分quote = scrapy.Field()  # 引用pass

3,新建爬虫,用来发请求爬数据

​ cd 进 spiders 目录

​ 在 cmd 上敲:

scrapy genspider 自定义名称 "movie.douban.com"

第三:获取数据

在上面创建的爬虫文件上:

import scrapy
from douban.items import DoubanItemclass DoubanpSpider(scrapy.Spider):name = 'doubanP'  # 上面你自定义的名称allowed_domains = ['movie.douban.com']  # 访问的网域start_urls = ['https://movie.douban.com/top250'] # 祖链接def parse(self, response):try:# 获取数据for info in response.css('div.info'):  # 这里使用css 方式 获得响应的htmlitem = DoubanItem() # 之前创的字段文件# 标题name1 = info.css('span.title::text').get()name2 = info.css('span:nth-child(2).title::text').get()name3 = info.css('span.other::text').get()# 电影信息introInfo = info.css('div.bd p::text').getall()# 评分score = info.css('span.rating_num::text').get()# 引用 inqquote = info.css('span.inq::text').get()# 加入item对象item['name'] = str(name1) + str(name2) + str(name3)item['introInfo'] = introInfo[0]item['time'] = introInfo[1]item['score'] = scoreitem['quote'] = quoteyield item  # 这里会传到管道文件,一会配置# 下一页  由于是固定250个文件,点击下一页会有一个 top250?start=25&fter=# 所以简单的计算一下,然后发送请求获取下一页的数据count = 25while count <= 250:url = 'https://movie.douban.com/top250?start={count}&filter='.format(count=count)count += 25 # 豆瓣一页显示25条数据yield scrapy.Request(url, callback=self.parse)except Exception as e:print(e)

最最最重要的一步来了,那就是设置setting.py文件:


BOT_NAME = 'douban'
SPIDER_MODULES = ['douban.spiders']
NEWSPIDER_MODULE = 'douban.spiders'# 头文件,没有该文件将无法爬取
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'# Obey robots.txt rules
ROBOTSTXT_OBEY = True# 管道
ITEM_PIPELINES = {'douban.pipelines.DoubanPipeline': 300,
}

第4:存入Mongodb数据库或导出成为文件

1,存入数据库

安装数据库:

pip3 install pymongo

在 pipelines.py 文件中

import pymongo
from itemadapter import ItemAdapterclass DoubanPipeline:def __init__(self):# 连接数据库client = pymongo.MongoClient()# 集合self.collection = client.scrapy.douban_moviedef process_item(self, item, spider):self.collection.insert_one(dict(item))print('加入成功!')return item

就这么简单。

2,导出json文件

在控制台输入:

scrapy crawl doubanP -o movies.json -s FEED_EXPORT_ENCODING=UTF-8

或者

建一个main.py 文件

from scrapy.cmdline import *if __name__ == '__main__':execute('scrapy crawl doubanP -o movies.json -s FEED_EXPORT_ENCODING=UTF-8'.split())

第5:看看你的250?不,是我的250!

Mongodb后台:

json:

Scrapy 框架:爬取豆瓣Top 250相关推荐

  1. 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云

    基于Scrapy框架爬取豆瓣<复联4>影评,并生成词云 1. 介绍及开发环境 2. 爬虫实现 2.1 新建项目 2.2 构造请求 2.3 提取信息 2.4 数据存储 2.4 运行结果 3. ...

  2. Python 爬虫 爬取豆瓣Top 250 并将海报图片爬取下来保存

    本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关. 本文章是自己学习的一些记录. 爬取豆瓣top 250 现在的很多学习的教程例子都是 ...

  3. 用Scrapy框架爬取豆瓣电影,构建豆瓣电影预测评分模型

    文章目录 前言 一.Scrapy爬虫爬取豆瓣电影 1. Scrapy框架介绍 (1) Scrapy框架构造: (2) 数据流 (3) 项目结构 2. 创建爬虫爬取豆瓣 (1)创建项目 (2) 创建It ...

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

    前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关 ...

  5. 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分

    安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...

  6. 爬取豆瓣Top 250电影信息、下载图片、存储到Excel,快来试试吧!

    写的第一个还算有点复杂的Python的程序,有点意思,感觉Python的实用性和开发效率实在很优秀,O(∩_∩)O哈哈~ 源代码在最后,有兴趣的可以试试跑一下. 爬虫地址豆瓣电影 Top 250. 文 ...

  7. 使用scrapy框架爬取豆瓣影评

    2019独角兽企业重金招聘Python工程师标准>>> 最近几天在看平凡岁月 感觉挺不错的一部生活剧,想看看豆瓣 对该据评论,使用scrapy爬取,基于python2.7进行实现 1 ...

  8. python scrapy框架爬取豆瓣top250电影篇一Windows下建立Scrapy项目,pycharm编辑

    1.打开cmd,进入到项目准备所放在的文件夹,执行命令: scrapy startproject douban 然后就可以使用pycharm打开项目了 2.建立spider文件 cmd命令行进入到项目 ...

  9. 杀鸡用用牛刀 scrapy框架爬取豆瓣电影top250信息

    文章目录 一.分析网页 二.scrapy爬虫 三.处理数据 原文链接:https://yetingyun.blog.csdn.net/article/details/108282786 创作不易,未经 ...

最新文章

  1. 【OpenCV十六新手教程】OpenCV角检测Harris角点检测
  2. mysql 非自然月统计_技本功|统计信息对SQL执行效率的影响
  3. 鲜为人知的DC-DC外围电感选型方法
  4. 如何确保您的Progressive Web App保持其Lighthouse审核分数
  5. 创纪录!浪潮云海完成OpenStack Rocky版本全球最大规模单一集群测试!
  6. network3D 交互式网络生成
  7. 检查浏览器支持(Checking browser support),这个是很广泛的一个知识!
  8. 盘点2018:数据和云最受欢迎的十大精品文章
  9. activemq spring监听不了
  10. 我就不信发不出去,工 作 时候用的,来啊=》模板下载
  11. 构建之法:第八次心得
  12. 第六届中国电子信息博览会今日正式开幕,智享新时代!
  13. html5修改进度条颜色,如何改变HTML5进度条
  14. 【软考高级:信息系统项目管理师】【信息项目十大管理】第二天:项目立项管理
  15. [Unity][摄像机视角]多个摄像机之间切换
  16. HC74h595 串行输出再进行串口输出(串行通信嵌套)已测试成功。
  17. nexus私服传项目-401 Unauthorized
  18. HDU2370——Convert Kilometers to Miles
  19. Java多线程学习(吐血超详细总结)【转】
  20. R语言 - RStudio使用Git版本控制

热门文章

  1. 一个程序员的硬笔书法观
  2. Matlab求微分方程的符号解1
  3. 代数小课堂:线性代数(矩阵的用途,提高批处理问题的能力)
  4. 猜画小歌技术解密!推出一天 中国网民“疯”了
  5. AndroidStudio中,如何使用 MultiDex (apk中生成多个dex、dex分包)
  6. 奇安信入选全球《软件成分分析全景图》代表厂商
  7. 主导2022年世界移动通信大会:中国手机品牌在欧洲最大的手机展会上抢占焦点舞台
  8. Matlab曲线拟合不出结果——提示 blas 加载错误
  9. jquery鼠标经过弹出层写法
  10. 爱好就是一切,灵感源于内在世界,能力取决于知识渊博,魄力在于性格,