首页 > 其他分享 >scrapy用法举例 (Scrapy爬取豆瓣电影Top250)

scrapy用法举例 (Scrapy爬取豆瓣电影Top250)

时间:2023-07-14 13:46:03浏览次数:45  
标签:douban movie self scrapy Spider 爬取 Scrapy

Scrapy是一个Python的爬虫框架,用于快速开发和部署Web爬虫。它提供了一套完整的爬虫工具,包括爬虫的调度、数据下载、数据处理和存储等功能,同时也支持多线程、分布式和异步IO等高级特性。

以下是Scrapy的用法介绍:

  1.安装Scrapy
    Scrapy可以通过pip安装,命令如下:

pip install scrapy  

  

 

  2.创建Scrapy项目

    使用以下命令创建一个Scrapy项目:

scrapy startproject douban  

    其中 douban 为项目名

 

 

  3.创建Spider

    使用以下命令创建一个Spider:

scrapy genspider spider_name domain_name 

    其中,spider_name是Spider名称,domain_name是要爬取的域名。

    例子:

scrapy genspider douban_movie https://movie.douban.com/top250  

    创建好Spider之后,需要在Spider中定义start_urls和parse方法,其中start_urls是要爬取的起始URL,parse方法是用来处理下载的数据。

    在Spider中定义start_urls和parse方法:

import scrapy  
  
class DoubanMovieSpider(scrapy.Spider):  
    name = 'douban_movie'  
    allowed_domains = ['movie.douban.com']  
    start_urls = ['https://movie.douban.com/top250']  
  
    def parse(self, response):  
        for movie in response.xpath('//div[@class="hd"]'):  
            yield {  
                'title': movie.xpath('.//a/span[1]/text()').extract_first(),  
                'rating': movie.xpath('../div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()').extract_first(),  
                'link': movie.xpath('.//a/@href').extract_first()  
            }  

  

 

  4.配置Scrapy

    在settings.py中设置下载延迟和User-Agent:

DOWNLOAD_DELAY = 1  
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'  

  

 

  5. 运行Scrapy

    使用以下命令运行Scrapy:

scrapy crawl douban_movie -o douban_movie.csv  

    其中,douban_movie是Spider名称,douban_movie.csv是输出文件名称。

 

 

  6.数据处理和存储

    可以使用Scrapy提供的Item和Pipeline来处理和存储数据。在items.py中定义数据项:

import scrapy  
  
class DoubanMovieItem(scrapy.Item):  
    title = scrapy.Field()  
    rating = scrapy.Field()  
    link = scrapy.Field()  

    在pipelines.py中定义Pipeline:

import csv  
  
class DoubanMoviePipeline(object):  
    def __init__(self):  
        self.file = open('douban_movie.csv', 'w', encoding='utf-8', newline='')  
        self.writer = csv.writer(self.file)  
        self.writer.writerow(['title', 'rating', 'link'])  
  
    def process_item(self, item, spider):  
        self.writer.writerow([item['title'], item['rating'], item['link']])  
        return item  
  
    def close_spider(self, spider):  
        self.file.close()  

    在settings.py中启用Pipeline:

ITEM_PIPELINES = {  
    'douban.pipelines.DoubanMoviePipeline': 300,  
}  

    通过以上步骤,就可以使用Scrapy爬取豆瓣电影Top250,并将结果保存到CSV文件中。

标签:douban,movie,self,scrapy,Spider,爬取,Scrapy
From: https://www.cnblogs.com/avivi/p/17553457.html

相关文章

  • scrapy架构
    1selenium爬取京东商品信息importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeys#键盘按键操作fromselenium.webdriver.chrome.optionsimportOptionsdefget_goods(bro):......
  • 爬取 2 万多张 Flickr 图片,莫纳什大学复现 10 年间日本樱花开放的时空特征
    内容一览:近年来,全球气候变化形势严峻,由此引发的蝴蝶效应,正深刻地影响着人类和大自然。在这一背景下,收集数百甚至数千公里范围内开花模式的数据,了解气候变化如何对开花植物产生影响,成为近年来生态研究的重要课题之一。但传统的方法通常需要耗费大量经费,且需要较长的时间进行采样调查......
  • Python3.6下scrapy框架的安装
    命令安装,提示  FailedbuildingwheelforTwistedMicrosoftVisualC++14.0isrequired...  总结pipinstallwheel 下载Twisted包安装下载Scrapy包安装下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/详细解决方案1首先考虑使用最简单的方法安装pipinstallsc......
  • Python爬取哔哩哔哩视频
    Python爬取哔哩哔哩视频一、环境准备我这里使用的是环境如下仅供参考:开发工具:pycharmpython环境:python-3.8.0依赖的包:shutil,os,re,json,choice,requests,lxml二、页面分析我在这里就拿前段时间非常火的马老师的视频来举例子吧。视频链接:https://www.bilibili.com/video/BV1Ef4......
  • 爬取新闻 ,bs4, css选择器,selenium基本使用
    目录1爬取新闻2bs4介绍遍历文档树3bs4搜索文档树3.2其他用法4css选择器5selenium基本使用5.1模拟登录百度6selenium其他用法6.1无头6.2搜索标签1爬取新闻#1爬取网页---requests#2解析 ---xml格式,用了re匹配的 ---html,bs4,lxml。。。---json: -python......
  • Scrapy框架爬取cnblog实例
    Scrapy框架爬取cnblog下一页简单实例犯了一个错误:直接拿浏览器点出来第二页链接去做拼接,导致一直爬不到下一页实际上应该是:blog.pyimportscrapyfromscrapyimportRequestfrombs4importBeautifulSoupimporttimeclassBlogSpider(scrapy.Spider):name="bl......
  • 爬取财务公司售汇汇率数据
    #!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2021/12/1810:06#@Author:李宏#@File:fms.py#@Sofeware:PyCharmimportosfromdatetimeimportdatetime,timedeltaimportjson,requestsimportpandasaspdfromoption_mssqlimportmssql_queryfroms......
  • python爬虫scrapy入门教程
    背景:python实现网页爬虫,可以使用scrapy,首先,需要安装python的运行环境,我们这里使用anaconda集成环境。安装好以后,打开AnacondaNavigator,打开CMD.exePrompt,在命令行窗口运行:pipinstallscrapy,运行完,没有报错,意味着scrapy就安装好了,然后,在当前文件夹下新建一个文件,名为:myspider.p......
  • 【慢慢买嗅探神器】基于scrapy+pyqt的电商数据爬虫系统
    项目预览项目演示代码部分爬虫模块GUI......
  • Splash与Scrapy结合
    Splash与Scrapy结合scrapy-splash教程—splash中文文档0.1文档https://splash-cn-doc.readthedocs.io/zh_CN/latest/scrapy-splash-toturial.html安装scrapy-splash库pipinstallscrapy-splash==0.8.0配置splash服务(以下操作全部在settings.py)使用splash解析,要在配......