scrapy,redis分布式爬取猫眼电影!

使用scrapy再次爬取猫眼前100榜单电影 前提: 记得去年5月份左右的时候写过一篇使用Requests方法来爬取猫眼榜单电影的文章,今天偶然翻到了这篇文章,又恰巧最近在学scrapy框架进行爬虫,于是饶有兴趣的使用scrapy框架再次进行爬取。 说明: 如图所示,这次爬取的猫眼榜单网页链接内容大致如下(图1-1),这次需要爬取的信息分别是电影名称、主演、上映时间、电影评分和电影图片链接,然后将获取的电影图片下载保存到本地,如图1-2所示。 ... 阅读详情

能够利用redis缓存数据库的优点去重来避免数据的大面积冗余

1、首先就是要创建猫眼爬虫项目

2、进入项目内部创建一个爬虫文件

创建完文件之后就是要爬取的内容,我这边以爬取猫眼电影的title和link为例(这个完全看个人你可以先去写爬虫,然后再来写items文件)

3、编写item文件

Python资源共享群:626017123

class MaoyanTestItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    link = scrapy.Field()
    pass

4、编写爬虫文件(确定自己要爬的内容,然后与items中的指定字段连接起来)

import scrapy
from fake_useragent import UserAgent
from scrapy.selector import Selector
from maoyan_test.items import MaoyanTestItem
headers = {
    'user-agent': UserAgent(verify_ssl=False).chrome
}
class MovieSpiderSpider(scrapy.Spider):
    name = 'movie'
    allowed_domains = ['www.maoyan.com/board/4']
    start_urls = ['http://www.maoyan.com/board/4?offset=%s']
    def start_requests(self):
        for i in range(10):
            url = self.start_urls[0] % str((i*10))
            yield scrapy.Request(url, callback=self.parse, dont_filter=False, headers=headers)
    def parse(self, response):
        item = MaoyanTestItem()
        sel = Selector(response)
        movie_list = sel.xpath('//dl[@class="board-wrapper"]/dd')
        for movie in movie_list:
            title = movie.xpath('a/@title').extract_first()
            link = 'https://www.maoyan.com' + movie.xpath('a/@href').extract_first()
            item['title'] = title
            item['link'] = link
            yield item

5、编写Pipline文件:--> 这里面主要是通过redis缓存数据库来对数据进行筛选,然后将数据主要保存到Mysql中

首先配置settings文件

# 这个是需要手动加上的,通过scrapy-redis自带的pipeline将item存入redis中
ITEM_PIPELINES = {
    'maoyan_test.pipelines.MaoyanTestPipeline': 300,
    'scrapy_redis.pipelines.RedisPipeline': 400
}
# 启动redis自带的去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
# 启用调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
# 是否在关闭spider的时候保存记录
SCHEDULER_PERSIST = True
# 使用优先级调度请求队列(默认使用)
SCHEDULER_QUEUE_CLASS = 
 'scrapy_redis.queue.SpiderPriorityQueue'
# 指定redis的地址和端口,有密码的需要加上密码
REDIS_HOST = '127.0.0.1'
REDIS_PORT = '6379'
REDIS_PARAMS = {
    'password': '123456',
}
#SCHEDULER_QUEUE_KEY = '%(spider)s:requests'  # 调度器中请求存放在redis中的key
#SCHEDULER_SERIALIZER = "scrapy_redis.picklecompat"  # 对保存到redis中的数据进行序列化,默认使用pickle
#SCHEDULER_FLUSH_ON_START = False  # 是否在开始之前清空 调度器和去重记录,True=清空,False=不清空
# SCHEDULER_IDLE_BEFORE_CLOSE = 10  # 去调度器中获取数据时,如果为空,最多等待时间(最后没数据,未获取到)。
#SCHEDULER_DUPEFILTER_KEY = '%(spider)s:dupefilter'  # 去重规则,在redis中保存时对应的key  chouti:dupefilter
#SCHEDULER_DUPEFILTER_CLASS = 'scrapy_redis.dupefilter.RFPDupeFilter'  # 去重规则对应处理的类
#DUPEFILTER_DEBUG = False
#上述的扩展类需要的
MYEXT_ENABLED = True  # 开启扩展
IDLE_NUMBER = 10  # 配置空闲持续时间单位为 10个 ,一个时间单位为5s
#如果为True,则使用redis的'spop'进行操作。
#因为本次请求每一次带上的都是时间戳,所以就用了lpush
#如果需要避免起始网址列表出现重复,这个选项非常有用。开启此选项urls必须通过sadd添加,否则会出现类型错误。
#REDIS_START_URLS_AS_SET = True

之后就是要在pipeline文件中将真是的数据保存到MySQL中:

import pymysql
class MaoyanTestPipeline(object):
    comments = []
    def __init__(self):
        self.conn = pymysql.connect(
            host='localhost',
            user='root',
            passwd='123456',
            port=3306,
            db='spider',
            charset='utf8',
            autocommit=True
        )
        self.cursor = self.conn.cursor()
    def process_item(self, item, spider):
        self.comments.append([item['title'], item['link']])
        if len(self.comments) == 1:
            self.insert_to_sql(self.comments)
            self.comments.clear()
        return item
    def close_spider(self, spider):
        self.insert_to_sql(self.comments)
    def insert_to_sql(self, data):
        try:
            sql = 'insert into maoyan_movie (title, link) values (%s, %s);'
            print(data)
            self.cursor.executemany(sql, data[0])
        except:
            print('插入数据有误...')
            self.conn.rollback()
scrapy爬取猫眼电影信息 scrapy是一个优秀的爬虫框架,可以非常直观规整的进行数据爬取。下面以爬取猫眼电影信息为例: 首先我们我们需要建立一个scrapy项目: 在项目目录下cmd窗口输入: scrapy startproject maoyan 创建一个maoyan爬虫项目: 接着我们进入maoyan项目目录: 然后我们创建一个spider: scrapy genspider maoyan_spider maoy... 阅读详情

相关推荐

Python爬虫实战:猫眼电影票房数据采集与可视化分析全流程

网络爬虫是一种自动化采集互联网信息的程序技术,其核心原理是通过模拟浏览器行为访问网页并提取结构化数据。在数据驱动决策的时代,爬虫技术为市场分析、竞品监控和业务洞察提供了重要的数据支撑。Python凭借requests、BeautifulSoup等强大的第三方库,成为爬虫开发的首选语言。以猫眼电影票房数据为例,爬虫技术可以实时采集票房占比、排片率等关键指标,通过pandas进行数据处理,并利用matplotlib实现数据可视化。这种技术组合不仅能帮助分析电影市场趋势,还可应用于电商价格监控、舆情分析等多个业务

weixin_34414650的博客 514

爬虫学习:使用scrapy爬取猫眼电影

操作步骤 1.生成项目(在cmd或shell窗口运行以下3列代码) scrapy startproject movieinfo cd movieinfo scrapy genspider maoyanm 生成文件结构如下: 2.相关文件内容编辑 maoyanm.py # -*- coding: utf-8 -*- import scrapy from ...

weixin_30847865的博客 737

基于YOLO11深度学习的糖尿病视网膜病变智能诊断系统【Python源码+Pyqt5界面+数据集+训练代码】

本文详细介绍如何利用YOLO11深度学习技术构建糖尿病视网膜病变智能诊断系统。项目提供完整的Python源码、PyQt5图形界面、标注数据集及训练代码,实现从图片、视频到摄像头的多模态病变检测,旨在辅助医疗筛查,提升诊断效率。

weixin_29089057的博客 277

<scrapy爬虫>爬取猫眼电影top100详细信息

1.创建scrapy项目 dos窗口输入: scrapy startproject maoyan cd maoyan 2.编写item.py文件(相当于编写模板,需要爬取的数据在这里定义) # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See d...

weixin_30800987的博客 1099

NVIDIA Jetson Xavier NX刷机教程

NVIDIA Jetson Xavier NX刷机教程,分别安装OS和SDK的经验分享

qq_68271367的博客 6959

Mac上Ollama服务IP访问失败的3种修复方法(含永久生效配置)

本文详细介绍了Mac上Ollama服务IP访问失败的3种修复方法,包括临时环境变量覆盖、永久Shell配置修改及进阶排查技巧。重点解析了OLLAMA_HOST环境变量的配置原理,帮助开发者解决Connection refused问题,实现局域网IP访问Ollama服务的需求。

weixin_29209805的博客 210

Python3 Scrapy框架学习一:爬取猫眼Top100榜

以下操作基于Windows平台。 打开CMD命令提示框: 输入 如下命令: 打开项目里的items.py文件,定义如下变量,用于存储。 class MaoyanItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() movie = scrap...

Python3 爬虫实战 1:应对特殊字体,爬取猫眼电影实时排行榜 3447

pytorch多层感知机实现假钞识别(完整项目构建)

目录1 项目构建2 超参数设置 config.py3 数据集预处理 preprocess.py4 数据集类构建 dataset_banknote.py5 模型构建 model.py6 训练trainer.py6.1 查看损失曲线7 在测试集上运行 inference.py 1 项目构建 构建项目文件夹Banknote,以及子文件夹与py文件。 名称 作用 data目录 存放原始数据与预处理后切分为训练集、验证机、测试集的数据 log目录 存放训练过程中保存的指标,如损失、精确度等

Demon_LMMan的博客 2027

scrapy-redis分布式爬取猫眼电影

能够利用redis缓存数据库的优点去重来避免数据的大面积冗余 1、首先就是要创建猫眼爬虫项目 2、进入项目内部创建一个爬虫文件 创建完文件之后就是要爬取的内容,我这边以爬取猫眼电影的title和link为例(这个完全看个人你可以先去写爬虫,然后再来写items文件) 3、编写item文件 class MaoyanTestItem(scrapy.Item): ...

weixin_30606669的博客 206

国产谷歌地球,地形分析秒杀同款地图软件

咱们做地质、林业、水文、水利、电力、GIS、地图、水保、环境的,需要经常用到各种数据,比如影像、地形、矢量、模型等,但目前80%的规划大数据展示都离不开ArcGIS,令人头大的是很多朋友连ArcGIS软件安装起来都费劲。。。 那不会ArcGIS又装不了Google Earth怎么开展工作? 今天推荐大家一款国产免费专业地图浏览下载测量分析神器—图新地球 图新地球,国产三维gis软件。可以查看高清卫星影像地形以及其他很多常用电子地图,对地图需求的掌握远胜过Google Maps,而且上手比国外软件要简单

GISWorld3D的博客 3687

【计算机视觉】语义分割实战:FCN、U-Net与DeepLab系列详解

语义分割实战:FCN、U-Net与DeepLab系列详解,人工智能、大模型、AI深度学习在计算机视觉领域取得了令人瞩目的进展,语义分割作为计算机视觉领域的关键任务,旨在将图像中的每个像素都分配到特定的类别中,实现对图像内容的精细理解。与目标检测关注物体的类别与位置不同,语义分割能够对场景中的所有元素进行像素级别的分类,这在自动驾驶、医学图像分析、遥感图像解译等众多领域都有着至关重要的应用。例如,在自动驾驶中,准确的语义分割可以帮助车辆识别道路、行人、交通标志等,为安全行驶提供决策依据;在医学图像分析中……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 9万+

Scrapy爬取猫眼电影评论

Scrapy爬取猫眼电影评论 文章目录Scrapy爬取猫眼电影评论1、寻找评论接口2、分析接口URL接口URL规律构造URL接口分析JSON参数3、Scrapy代码spiders文件Item文件piplinessettings文件4、爬取结果5、Scrapy-Redis修改爬虫文件修改setting文件进行分布式部署 目标:地址 1、寻找评论接口 将浏览器模式从PC切换为手机 2、分析接口U...

kong 4546

使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统

这是一本关于使用 FastAPI 和 LangGraph 构建生产级智能体 AI 系统的详细书籍,全文约 10 万字。《Production-Grade Agentic AI System Design and Implementation: Building Agentic AI Systems Using FastAPI and LangGraph》随着人工智能(AI)技术的迅猛发展,智能体(Agent)作为能够自主感知、推理、决策和行动的实体,正逐渐成为构建复杂智能系统的核心。从个性化推荐、客户服务到

AI天才研究院 353

mvdbos php spider,Scrapy-Redis分布式爬取自如网(一)

继上次Scrapy爬取猫眼电影之后,这几天学习了Scrapy-Redis分布式来提高爬取效率,也算是停留在舒适圈一段时间后往前走了一步!!这次爬取的是上海自如租房,相信在魔都生活的小伙伴们如果不是本地人,租房费用占了每月开销很大的一部分,我们来看下租房体验比较好的自如,除了价格贵外 - -!!实战应用创建一个工程scrapy startproject ziru第一步 编辑item.pyimport...

weixin_33555586的博客 151

Codex入门10-Goal自主任务(进阶必学:设定目标就不管了,AI自己干活到完成)

/goal 是Codex CLI最强大的进阶功能——设定一个目标,AI就会制定计划、分步执行、自我测试、持续迭代,即使你关掉终端也会继续。本文详解/goal的工作原理、配置启用方法、常用命令(pause/resume/status/clear),以及如何写出高质量的目标描述让AI高效自主完成任务。

yueyeguzhuo的专栏 456

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python爬虫入门实例:Python7个爬虫小案例(附源码)

整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

2301_78095812的博客 5134

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python_django微信小程序的基于scrapy的电影票务售票价格信息聚合网站vue爬虫

后端开发:基于Spring Boot/flask/django/Thinkphp-Laravel框架和Java语言实现后端服务,处理业务逻辑和数据库交互。(1) Spring Boot/flask/django/Thinkphp-Laravel:作为后端开发框架,实现API接口、用户管理等。小程序框架uni-app:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。功能设计:依据需求分析,设计小程序端和电脑pc端功能,确定模块交互流程。

qq840612233的博客 566

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于Python的电影信息爬取与数据可视化分析系统

本文介绍了一个电影数据爬取与可视化分析系统的三层架构设计。系统采用Bootstrap5和Vue.js构建响应式前端,Celery分布式爬虫集群实现数据采集,PySpark处理海量数据。数据存储使用MySQL、MongoDB和Neo4j混合方案,支持结构化、非结构化和关系数据。系统特色包括:基于BERT的情感分析、BiLSTM-CRF构建的知识图谱、ARIMA+XGBoost票房预测模型,以及TF-IDF与ALS算法的混合推荐系统。该系统可应用于影视投资分析、影院排片优化等场景,技术栈涵盖Python3.8、

2501_93059031的博客 563

python3 爬虫实例_自己动手,丰衣足食!Python3网络爬虫实战案例

课程名称:自己动手,丰衣足食!Python3网络爬虫实战案例【温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程;2. 课程相关资料&QQ会员群可在课程PC端公告查看下载;3.购买课程后,点(课时)列表即可观看视频 】适宜人群:萌新小白:我连爬虫也不知道是什么入门菜鸟:我对一些爬虫的用法还不是很熟练老司机:我想学习更高级的框架及分布式从环境基础到进阶分布式,由浅入深,...

weixin_39860636的博客 179

vue+uniapp微信小程序的基于scrapy的电影票务售票价格信息聚合网站vue爬虫

1、基于物品协同过滤算法,ItemCF 是一种通过分析“商品与商品之间被共同购买的关系”来为用户推荐商品的协同过滤算法,具有稳定、可解释、不依赖商品内容的优点。是电商最常用的推荐策略之一。ItemCF 判断两个商品是否相关的依据是:是否被同一批用户购买过,以及购买的数量;使用的相似度计算方式:余弦相似度使用npm install -g cnpm 来安装cnpm。执行cnpm install来安装依赖。在本地开发时,npm run server启动项目。通过访问 来访问用户端系统。

ztopmind的博客 381

自己动手,丰衣足食!Python3网络爬虫实战案例

第一章:环境配置; [1 r2 i0 H. C# R9 x: R 1 Python3+Pip环境配置  22:10  1 e$ z, ~' y. p  E 购买后请及时添加课程助手tianshansoft01,获取后续服务。9 d1 Q6 s7 F8 |& Q# } 2 MongoDB环境配置 14:06   购买后请及时添加课程助手tianshansoft01,获取后续服务。

qq_36653286的博客 3401

python3 爬虫实例_2017 Python3网络爬虫实战案例,资源教程下载

课程名称2017 Python3网络爬虫实战案例,资源教程下载课程介绍说到python首当其冲的当然是爬虫了,这部教程是2017年5月份价值699元的最新爬虫实战教程。当然下面会给出本教程完整高清的视频下载地址源码也齐全,当然这699元也给你省了。下面一起来看看课程的目录吧。课程目录第一章:环境配置1 Python3+Pip环境配置2 MongoDB环境配置3 Redis环境配置4 MySQL的安...

weixin_39849254的博客 189

Python3网络爬虫实战案例这套教程太全面了,真得收藏一下!(转载)

课程介绍这是一套目前为止我觉得最适合小白学习的体系非常完整的Python爬虫课程,使用的Python3.6的版本,用到anaconda来开发python程序,老师讲解的很细致,课程体系设置的也非常棒,完全是从浅入深一点点讲解,从Python爬虫环境的安装开始,讲解了最最基本的urllib包如何使用,如何解析request请求内容,刷选有用数据,像ajax,post,html,json等等都非常细致...

Joker's blog 1万+

python网络爬虫 百度网盘_Python3网络爬虫实战案例 高清

第一章:环境配置1 Python3+Pip环境配置 22:10购买后请及时添加课程助手tianshansoft01,获取后续服务。2 MongoDB环境配置 14:06购买后请及时添加课程助手tianshansoft01,获取后续服务。3 Redis环境配置 9:02购买后请及时添加课程助手tianshansoft01,获取后续服务。4 MySQL的安装 7:375 Python多版本共存配置 ...

weixin_39897749的博客 404

Python网络爬虫基础

python爬虫技术

qq_52421831的博客 3889

python爬虫项目实战教学视频_('[Python爬虫]---Python爬虫进阶项目实战视频',)

爬虫]---Python爬虫进阶项目实战1- Python3+Pip环境配置2- MongoDB环境配置3- Redis环境配置4- 4-MySQL的安装5- 5-Python多版本共存配置6- 6-Python爬虫常用库的安装7- 7- 爬虫基本原理讲解8- 8-Urllib库基本使用9- 9-Requests库基本使用10- 10-正则表达式基础11- 11-BeautifulSoup库详解1...

weixin_39850697的博客 373
上一篇: Python网络爬虫实战,数据解析!
下一篇: 迭代列表不要For循环,这是Python列表推导式最基本的概念!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值