Scrapy 框架:爬取豆瓣Top 250
使用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相关推荐
- 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云
基于Scrapy框架爬取豆瓣<复联4>影评,并生成词云 1. 介绍及开发环境 2. 爬虫实现 2.1 新建项目 2.2 构造请求 2.3 提取信息 2.4 数据存储 2.4 运行结果 3. ...
- Python 爬虫 爬取豆瓣Top 250 并将海报图片爬取下来保存
本文章的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,滥用技术产生的风险与本人无关. 本文章是自己学习的一些记录. 爬取豆瓣top 250 现在的很多学习的教程例子都是 ...
- 用Scrapy框架爬取豆瓣电影,构建豆瓣电影预测评分模型
文章目录 前言 一.Scrapy爬虫爬取豆瓣电影 1. Scrapy框架介绍 (1) Scrapy框架构造: (2) 数据流 (3) 项目结构 2. 创建爬虫爬取豆瓣 (1)创建项目 (2) 创建It ...
- 03_使用scrapy框架爬取豆瓣电影TOP250
前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关 ...
- 爬虫项目实操三、用scrapy框架爬取豆瓣读书Top250的书名,出版信息和评分
安装方法:Windows:在终端输入命令:pip install scrapy:mac:在终端输入命令:pip3 install scrapy,按下enter键,再输入cd Python,就能跳转到P ...
- 爬取豆瓣Top 250电影信息、下载图片、存储到Excel,快来试试吧!
写的第一个还算有点复杂的Python的程序,有点意思,感觉Python的实用性和开发效率实在很优秀,O(∩_∩)O哈哈~ 源代码在最后,有兴趣的可以试试跑一下. 爬虫地址豆瓣电影 Top 250. 文 ...
- 使用scrapy框架爬取豆瓣影评
2019独角兽企业重金招聘Python工程师标准>>> 最近几天在看平凡岁月 感觉挺不错的一部生活剧,想看看豆瓣 对该据评论,使用scrapy爬取,基于python2.7进行实现 1 ...
- python scrapy框架爬取豆瓣top250电影篇一Windows下建立Scrapy项目,pycharm编辑
1.打开cmd,进入到项目准备所放在的文件夹,执行命令: scrapy startproject douban 然后就可以使用pycharm打开项目了 2.建立spider文件 cmd命令行进入到项目 ...
- 杀鸡用用牛刀 scrapy框架爬取豆瓣电影top250信息
文章目录 一.分析网页 二.scrapy爬虫 三.处理数据 原文链接:https://yetingyun.blog.csdn.net/article/details/108282786 创作不易,未经 ...
最新文章
- 【OpenCV十六新手教程】OpenCV角检测Harris角点检测
- mysql 非自然月统计_技本功|统计信息对SQL执行效率的影响
- 鲜为人知的DC-DC外围电感选型方法
- 如何确保您的Progressive Web App保持其Lighthouse审核分数
- 创纪录!浪潮云海完成OpenStack Rocky版本全球最大规模单一集群测试!
- network3D 交互式网络生成
- 检查浏览器支持(Checking browser support),这个是很广泛的一个知识!
- 盘点2018:数据和云最受欢迎的十大精品文章
- activemq spring监听不了
- 我就不信发不出去,工 作 时候用的,来啊=》模板下载
- 构建之法:第八次心得
- 第六届中国电子信息博览会今日正式开幕,智享新时代!
- html5修改进度条颜色,如何改变HTML5进度条
- 【软考高级:信息系统项目管理师】【信息项目十大管理】第二天:项目立项管理
- [Unity][摄像机视角]多个摄像机之间切换
- HC74h595 串行输出再进行串口输出(串行通信嵌套)已测试成功。
- nexus私服传项目-401 Unauthorized
- HDU2370——Convert Kilometers to Miles
- Java多线程学习(吐血超详细总结)【转】
- R语言 - RStudio使用Git版本控制