百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Scrapy爬虫框架 批量抓取数据轻轻松松啦~

itomcoil 2025-07-10 15:58 3 浏览

Scrapy爬虫框架 批量抓取数据轻轻松松啦~

亲爱的小伙伴们~今天我要和大家分享一个超级实用的爬虫框架 Scrapy!作为一个经常需要收集数据的妹子,我可以告诉你们,用 Scrapy 抓取数据真的是又快又方便呢!它就像是一个温柔的小助手,帮我们自动完成各种网页数据的获取工作,让我们告别手动复制粘贴的烦恼~

安装 Scrapy

首先要安装这个可爱的小助手啦!打开命令行,输入以下命令:


pip install scrapy

Scrapy 项目结构

创建一个新项目超简单哦:


scrapy startproject my_spider

cd my_spider

scrapy genspider example example.com

执行完后,我们会得到这样的项目结构:


my_spider/

    └── my_spider/

        ├── spiders/

        │   ├── __init__.py

        │   └── example.py

        ├── __init__.py

        ├── items.py

        ├── middlewares.py

        ├── pipelines.py

        └── settings.py

编写第一个爬虫

让我们来写一个小爬虫,抓取一些可爱的图书信息吧~


import scrapy



class BookSpider(scrapy.Spider):

    name = 'bookspider'  # 爬虫的名字,要独一无二哦

    start_urls = ['http://books.example.com']  # 开始爬取的网址

    

    def parse(self, response):

        # 获取所有图书信息

        books = response.css('.book-item')

        

        for book in books:

            yield {

                'title': book.css('.title::text').get(),

                'author': book.css('.author::text').get(),

                'price': book.css('.price::text').get()

            }

小贴士:记得把 start_urls 换成真实的网址哦!这里只是示例~

数据提取技巧

Scrapy 提供了好多可爱的选择器,就像挑选首饰一样,我们可以用不同的方式来获取数据:


# CSS 选择器,简单直观

title = response.css('h1::text').get()



# XPath 选择器,功能更强大

author = response.xpath('//span[@class="author"]/text()').get()



# 结合使用也是可以的哦

price = response.css('.price').xpath('./text()').get()

保存抓取的数据

运行爬虫并保存数据超级简单:


scrapy crawl bookspider -o books.json

这样就会生成一个可爱的 JSON 文件,里面整整齐齐地存放着我们抓取的数据~

处理分页

如果要爬取多个页面,可以这样写:


def parse(self, response):

    # 处理当前页面的数据

    for book in response.css('.book-item'):

        yield {

            'title': book.css('.title::text').get()

        }

    

    # 找到下一页的链接

    next_page = response.css('.next-page::attr(href)').get()

    if next_page:

        yield response.follow(next_page, self.parse)

注意事项:爬取数据时要注意控制速度哦,设置合适的延迟,做个有礼貌的小爬虫~

设置爬虫参数

在 settings.py 中可以设置一些参数,让爬虫更温柔:


# 请求间隔时间,单位秒

DOWNLOAD_DELAY = 2



# 启用 robots.txt 规则

ROBOTSTXT_OBEY = True



# 设置 User-Agent

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'

小伙伴们,今天的 Python 学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。Scrapy 真的是一个超级贴心的爬虫框架,希望你们也能感受到它的魅力!祝大家学习愉快,Python 学习节节高!

相关推荐

Java 如何从一个 List 中随机获得元素

概述从一个List中随机获得一个元素是有关List的一个基本操作,但是这个操作又没有非常明显的实现。本页面主要向你展示如何有效的从List中获得一个随机的元素和可以使用的一些方法。选择一个...

想月薪过万吗?计算机安卓开发之"集合"

集合的总结:/***Collection*List(存取有序,有索引,可以重复)*ArrayList*底层是数组实现的,线程不安全,查找和修改快,增和删比较慢*LinkedList*底层是...

China Narrows AI Talent Gap With U.S. as Research Enters Engineering Phase: Report

ImagegeneratedbyAITMTPOST--ChinaisclosinginontheU.S.intheAIindustry-academia-research...

大促系统优化之应用启动速度优化实践

作者:京东零售宋维飞一、前言本文记录了在大促前针对SpringBoot应用启动速度过慢而采取的优化方案,主要介绍了如何定位启动速度慢的阻塞点,以及如何解决这些问题。希望可以帮助大家了解如何定位该类问...

MyEMS开源能源管理系统核心代码解读004

本期解读:计量表能耗数据规范化算法:myems/myems-normalization/meter.py代码见底部这段代码是一个用于计算和存储能源计量数据(如电表读数)的小时值的Python脚本。它主...

Java接口与抽象类:核心区别、使用场景与最佳实践

Java接口与抽象类:核心区别、使用场景与最佳实践一、核心特性对比1.语法定义接口:interface关键字定义,支持extends多继承接口javapublicinterfaceDrawabl...

超好看 vue2.x 音频播放器组件Vue-APlayer

上篇文章给大家分享了视频播放器组件vue-aliplayer,这次给大家推荐一款音频插件VueAplayer。vue-aplayer一个好看又好用的轻量级vue.js音乐播放器组件。清爽漂亮的U...

Linq 下的扩展方法太少了,MoreLinq 来啦

一:背景1.讲故事前几天看同事在用linq给内存中的两个model做左连接,用过的朋友都知道,你一定少不了一个叫做DefaultIfEmpty函数,这玩意吧,本来很流畅的from......

MapReduce过程详解及其性能优化(详细)

从JVM的角度看Map和ReduceMap阶段包括:第一读数据:从HDFS读取数据1、问题:读取数据产生多少个Mapper??Mapper数据过大的话,会产生大量的小文件,由于Mapper是基于虚拟...

手把手教你使用scrapy框架来爬取北京新发地价格行情(实战篇)

来源:Python爬虫与数据挖掘作者:霖hero前言关于Scrapy理论的知识,可以参考我的上一篇文章,这里不再赘述,直接上干货。实战演练爬取分析首先我们进入北京新发地价格行情网页并打开开发者工具,如...

屏蔽疯狂蜘蛛,防止CPU占用100%(mumu模拟器和雷电模拟器哪个更占用cpu)

站点总是某个时间段莫名的cpu100%,资源占用也不高,这就有必要怀疑爬虫问题。1.使用"robots.txt"规范在网站根目录新建空白文件,命名为"robots.txt&#...

Web黑客近年神作Gospider:一款基于Go语言开发的Web爬虫,要收藏

小白看黑客技术文章,一定要点首小歌放松心情哈,我最爱盆栽!开始装逼!Gospider是一款运行速度非常快的Web爬虫程序,对于爱好白帽黑客的小白来说,可谓是佳作!Gospider采用厉害的Go语言开发...

用宝塔面板免费防火墙屏蔽织梦扫描网站

今天教大家在免费的基础上屏蔽织梦扫描,首先您要安装宝塔面板,然后再安装免费的防火墙插件,我用的是Nginx免费防火墙,然后打开这个插件。设置GET-URL过滤设置一条简单的宝塔面板的正则规则就可以屏蔽...

蜘蛛人再捞4千万美元 连续三周蝉联北美票房冠军

7月15日讯老马追踪票房数据的北美院线联盟今天表示,“蜘蛛人:离家日”(Spider-Man:FarFromHome)击退两部新片的挑战,连续第2周勇夺北美票房冠军,海捞4530万美元。法新...

夏天到了,需要提防扁虱,真是又小又恐怖的动物

夏天马上要到了,你知道吗,扁虱是这个夏天最危险的动物之一,很少有动物能比它还凶猛。Whenitcomestosummer'slittledangers,fewarenastiert...