返回顶部
首页 > 资讯 > 精选 >如何用Scrapy爬取豆瓣TOP250
  • 192
分享到

如何用Scrapy爬取豆瓣TOP250

2023-06-04 09:06:29 192人浏览 独家记忆
摘要

如何用scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使

如何用scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使用scrapy的基本方法。

本想从零开始写一个用Scrapy爬取教程,但是官方已经有了样例,所以还是不写了,尽量分享在网上不太容易找到的东西。自己近期在封闭培训,更文像蜗牛一样,抱歉。

Scrapy简介

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取api所返回的数据(例如 Amazon Associates WEB Services ) 或者通用的网络爬虫

如何用Scrapy爬取豆瓣TOP250

如果此前对scrapy没有了解,请先查看下面的官方教程链接。

架构概览:https://docs.pythontab.com/scrapy/scrapy0.24/topics/architecture.html

Scrapy入门教程:Https://docs.Pythontab.com/scrapy/scrapy0.24/intro/tutorial.html

爬虫教程

首先,我们看一下豆瓣TOP250页面,发现可以从中提取电影名称、排名、评分、评论人数、导演、年份、地区、类型、电影描述。

如何用Scrapy爬取豆瓣TOP250

    Item对象是种简单的容器,保存了爬取到得数据。其提供了类似于词典的API以及用于声明可用字段的简单语法。所以可以声明Item为如下形式。

class DoubanItem(scrapy.Item):
    # 排名
    ranking = scrapy.Field()
    # 电影名称
    title = scrapy.Field()
    # 评分
    score = scrapy.Field()
    # 评论人数
    pople_num = scrapy.Field()
    # 导演
    director = scrapy.Field()
    # 年份
    year = scrapy.Field()
    # 地区
    area = scrapy.Field()
    # 类型
    clazz = scrapy.Field()
    # 电影描述
    decsription = scrapy.Field()

我们抓取到相应的网页后,需要从网页中提取自己需要的信息,可以使用xpath语法,我使用的是BeautifulSoup网页解析器,经过BeautifulSoup解析的网页,可以直接使用选择器筛选需要的信息。有一些说明写到代码注释里面去了,就不再赘述。

Chrome 也可以直接复制选择器或者XPath,如下图所示。

如何用Scrapy爬取豆瓣TOP250

class douban_spider(Spider):

    count = 1

    # 爬虫启动命令
    name = 'douban'

    # 头部信息,伪装自己不是爬虫程序
    headers = {
        'User-Agent': 'Mozilla/5.0 (windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',
    }

    # 爬虫启动链接
    def start_requests(self):
        url = 'https://movie.douban.com/top250'
        yield Request(url, headers=self.headers)

    # 处理爬取的数据
    def parse(self, response):

        print('第', self.count, '页')
        self.count += 1

        item = DoubanItem()
        soup = BeautifulSoup(response.text, 'html.parser')

        # 选出电影列表
        movies = soup.select('#content div div.article ol li')

        for movie in movies:
            item['title'] = movie.select('.title')[0].text
            item['ranking'] = movie.select('em')[0].text
            item['score'] = movie.select('.rating_num')[0].text
            item['pople_num'] = movie.select('.star span')[3].text

            # 包含导演、年份、地区、类别
            info = movie.select('.bd p')[0].text
            director = info.strip().split('\n')[0].split('   ')
            yac = info.strip().split('\n')[1].strip().split(' / ')

            item['director'] = director[0].split(': ')[1]
            item['year'] = yac[0]
            item['area'] = yac[1]
            item['clazz'] = yac[2]

            # 电影描述有为空的,所以需要判断
            if len(movie.select('.inq')) is not 0:
                item['decsription'] = movie.select('.inq')[0].text
            else:
                item['decsription'] = 'None'
            yield item

        # 下一页:
        # 1,可以在页面中找到下一页的地址
        # 2,自己根据url规律构造地址,这里使用的是第二种方法
        next_url = soup.select('.paginator .next a')[0]['href']
        if next_url:
            next_url = 'https://movie.douban.com/top250' + next_url
            yield Request(next_url, headers=self.headers)

然后在项目文件夹内打开cmd命令,运行scrapy crawl douban -o movies.csv就会发现提取的信息就写入指定文件了,下面是爬取的结果,效果很理想。

如何用Scrapy爬取豆瓣TOP250

看完上述内容,你们掌握如何用Scrapy爬取豆瓣TOP250的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何用Scrapy爬取豆瓣TOP250

本文链接: https://lsjlt.com/news/237202.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何用Scrapy爬取豆瓣TOP250
    如何用Scrapy爬取豆瓣TOP250,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最好的学习方式就是输入之后再输出,分享一个自己学习scrapy框架的小案例,方便快速的掌握使...
    99+
    2023-06-04
  • 如何用scrapy框架爬取豆瓣读书Top250的书类信息
    这篇文章主要讲解了“如何用scrapy框架爬取豆瓣读书Top250的书类信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用scrapy框架爬取豆瓣读书Top250的书类信息”吧!安装方...
    99+
    2023-07-05
  • 爬取豆瓣电影排行top250
    爬取豆瓣电影排行top250 功能分析: 使用的库 1、time 2、json 3、requests 4、BuautifulSoup 5、RequestException """ 作者:李舵 日期:2019-4-27...
    99+
    2023-01-31
    豆瓣 电影排行
  • python如何爬取豆瓣电影TOP250数据
    这篇文章将为大家详细讲解有关python如何爬取豆瓣电影TOP250数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在执行程序前,先在MySQL中创建一个数据库"pachong"。i...
    99+
    2023-06-15
  • python爬取豆瓣电影TOP250数据
    在执行程序前,先在MySQL中创建一个数据库"pachong"。 import pymysql import requests import re #获取资源并下载 def resp(listURL): ...
    99+
    2022-06-02
    python 爬取豆瓣电影 python 爬取豆瓣数据
  • python爬取豆瓣top250的电影数
    爬取网址: https://movie.douban.com/top250 一:爬取思路(新手可以看一下) :      1:定义两个函数,一个get_page函数爬取数据,一个save函数保存数据,mian中向get_page函数传递...
    99+
    2023-01-31
    豆瓣 电影 python
  • 实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
    安装部署Scrapy 在安装Scrapy前首先需要确定的是已经安装好了Python(目前Scrapy支持Python2.5,Python2.6和Python2.7)。官方文档中介绍了三种方法进行安装,我采用...
    99+
    2022-06-04
    爬虫 豆瓣 框架
  • Python爬虫实战之使用Scrapy爬取豆瓣图片
    使用Scrapy爬取豆瓣某影星的所有个人图片 以莫妮卡·贝鲁奇为例 首先我们在命令行进入到我们要创建的目录,输入 scrapy startproject banciyuan 创建scrapy项目 创建的项目结构如下...
    99+
    2022-06-02
    Scrapy爬取图片 Python Scrapy
  • 怎么在Python中使用Scrapy爬取豆瓣图片
    本篇文章为大家展示了怎么在Python中使用Scrapy爬取豆瓣图片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.首先我们在命令行进入到我们要创建的目录,输入 scrapy startproje...
    99+
    2023-06-15
  • 爬取豆瓣电影信息
    昨天写了一个小爬虫,爬取了豆瓣上2017年中国大陆的电影信息,网址为豆瓣选影视,爬取了电影的名称、导演、编剧、主演、类型、上映时间、片长、评分和链接,并保存到MongoDB中。 一开始用的本机的IP地址,没用代理IP,请求了十几个网页之后...
    99+
    2023-01-30
    豆瓣 电影 信息
  • Python3 爬取豆瓣书籍 Xpat
    #coding:utf8import timefrom urllib import requestfrom bs4 import BeautifulSoupnum = 1#用来计算一共爬取了多少本书start_time = time.tim...
    99+
    2023-01-31
    豆瓣 书籍 Xpat
  • Python爬虫使用lxml模块爬取豆瓣
    上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢。本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快。 本次爬取的豆瓣书籍排行榜的首页地址是: https://www.dou...
    99+
    2023-01-31
    爬虫 豆瓣 模块
  • python怎么爬取豆瓣网页
    这篇文章主要介绍了python怎么爬取豆瓣网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python 语法简要介绍python 的基础语法大体与c语言相差不大,由于省去了...
    99+
    2023-06-14
  • python爬取豆瓣新书清单
    使用python3的requests库快速获取豆瓣图书推荐的新书清单,并保存书籍信息和图书缩略图图片到本地 #!/usr/bin/env python # -*- coding:utf-8 -*- """ @author:Aiker Z...
    99+
    2023-01-31
    豆瓣 新书 清单
  • Python爬虫怎么爬取豆瓣影评
    本篇内容主要讲解“Python爬虫怎么爬取豆瓣影评”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫怎么爬取豆瓣影评”吧!一、学习开始前需安装模块pip install reques...
    99+
    2023-06-02
  • 【python】爬取豆瓣电影排行榜Top250存储到Excel文件中【附源码】
    英杰社区https://bbs.csdn.net/topics/617804998 一、背景         近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top...
    99+
    2024-01-21
    python 人工智能 开发语言
  • 用python爬取豆瓣前一百电影
    目录实现代码:代码分析:运行结果:总结网站爬取的流程图: 实现项目我们需要运用以下几个知识点 一、获取网页1.找网页规律;2.使用 for 循环语句获得网站前4页的网页链接;3.使...
    99+
    2024-04-02
  • 详解如何用Python登录豆瓣并爬取影评
    目录一、需求背景二、功能描述三、技术方案四、登录豆瓣1.分析豆瓣登录接口2.代码实现登录豆瓣3.保存会话状态4.这个Session对象是我们常说的session吗?五、爬取影评1.分...
    99+
    2024-04-02
  • python 爬取豆瓣网页的示例
    目录python 语法简要介绍爬取网页解析网页储存网页python作为一种已经广泛传播且相对易学的解释型语言,现如今在各方面都有着广泛的应用。而爬虫则是其最为我们耳熟能详的应用,今天...
    99+
    2024-04-02
  • Scrapy 爬虫实例 抓取豆瓣小组信息并保存到mongodb中
    这个框架关注了很久,但是直到最近空了才仔细的看了下 这里我用的是scrapy0.24版本先来个成品好感受这个框架带来的便捷性,等这段时间慢慢整理下思绪再把最近学到的关于此框架的知识一一更新到博客来。最近想学...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作