我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用Scrapy网络爬虫框架

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用Scrapy网络爬虫框架

这篇文章将为大家详细讲解有关如何使用Scrapy网络爬虫框架,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

scrapy 介绍

标准介绍

  • Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。

说人话就是

  • 只要是搞爬虫的,用这个就van事了,因为里面集成了一些很棒的工具,并且爬取性能很高,预留有很多钩子方便扩展,实在是居家爬虫的不二之选。

windows下安装scrapy

命令

pip install scrapy

默认情况下,直接pip install  scrapy可能会失败,如果没有换源,加上临时源安装试试,这里使用的是清华源,常见安装问题可以参考这个文章:Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程。

命令

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

scrapy创建爬虫项目

命令

scrapy startproject <项目名称>

示例:创建一个糗事百科的爬虫项目(记得cd到一个干净的目录哈)

scrapy startproject qiushibaike

 如何使用Scrapy网络爬虫框架

注:此时,我们已经创建好了一个爬虫项目,但是爬虫项目是一个文件夹

 如何使用Scrapy网络爬虫框架

进入爬虫项目

如果想要进入这个项目,就要cd进这个目录,如上上图所示,先cd <项目>,再创建蜘蛛

如何使用Scrapy网络爬虫框架

项目目录结构解析

此时,我们就已经进入了项目,结构如下,有一个和项目名同名的文件夹和一个scrapy.cfg文件

scrapy.cfg # scrapy配置,特殊情况使用此配置 qiushibaike # 项目名同名的文件夹     items.py # 数据存储模板,定制要保存的字段     middlewares.py # 爬虫中间件     pipelines.py # 编写数据持久化代码     settings.py # 配置文件,例如:控制爬取速度,多大并发量,等     __init__.py     spiders # 爬虫目录,一个个爬虫文件,编写数据解析代码         __init__.py

呃,可能此时你并不能懂这么些目录什么意思,不过不要慌,使用一下可能就懂了,别慌。

创建蜘蛛

通过上述的操作,假设你已经成功的安装好了scrapy,并且进入了创建的项目

那么,我们就创建一个蜘蛛,对糗事百科的段子进行爬取。

如何使用Scrapy网络爬虫框架

创建蜘蛛命令

scrapy genspider <蜘蛛名称> <网页的起始url>

示例:创建糗事百科的段子蜘蛛

scrapy genspider duanzi ww.com

 如何使用Scrapy网络爬虫框架

注:网页的起始url可以随便写,可以随便改,但是必须有

此时在spider文件夹下,会多一个duanzi.py文件

如何使用Scrapy网络爬虫框架

代码解释如下

 如何使用Scrapy网络爬虫框架如何使用Scrapy网络爬虫框架

爬取数据前准备

创建好蜘蛛之后,需要在配置一些东西的,不能直接就爬的,默认是爬取不了的,需要简单配置一下

打开settings.py文件,找到ROBOTSTXT_OBEY和USER_AGENT变量

ROBOTSTXT_OBEY配置

等于False不遵守robot协议,默认只有搜索引擎网站才会允许爬取,例如百度,必应等,个人爬取需要忽略这个,否则爬取不了

 如何使用Scrapy网络爬虫框架

USER_AGENT配置

User-Agent是一个最基本的请求必须带的参数,如果这个带的不是正常的,必定爬取不了。

User-Agent

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

 如何使用Scrapy网络爬虫框架

小试牛刀之获取糗事百科段子段子链接

准备工作做好了,那就开始吧!!!

此处我们需要有xpath的语法基础,其实挺简单的,没有基础的记得百度一下,其实不百度也没关系,跟着学,大概能看懂

实现功能

通过xpath获取每个段子下的a标签连接

注:审查元素和按住crtl+f搜索内容和写xpath这里不再啰嗦

分析页面规则

 如何使用Scrapy网络爬虫框架

通过审查工具,我们可以看到,class包含article的标签就是一个个的文章,可能你想到xpath可能可以这样写

xpath代码

//div[@class='article']

但是你会发现一个都查不出来,因为是包含的关系,所以需要用contains关键字

如何使用Scrapy网络爬虫框架

我们需要这样写

xpath代码

//div[contains(@class,"article")]

 如何使用Scrapy网络爬虫框架

但是会发现,这定位的太多了,并不是每个段子的div,所以我们要多包含几个,这样,就是每个段子的div了

//div[contains(@class,"article") and contains(@class,"block")]

 如何使用Scrapy网络爬虫框架

上述已经成功定位了一个个的段子,下面在此基础上,定位到每个段子下的a标签

根据审查元素,发现每个段子下class="contentHerf"的a标签,就是每个段子的详情页

如何使用Scrapy网络爬虫框架

详情页,要定位的a标签的href确实是详情页的url

如何使用Scrapy网络爬虫框架

xpath代码

//div[contains(@class,"article") and contains(@class,"block")]//a[@class="contentHerf"]

 如何使用Scrapy网络爬虫框架

这样,我们就定位了一个个a标签,只至少在控制台操作是没问题的,那么,我们使用Python代码操作一下吧

如何使用Scrapy网络爬虫框架

代码

def parse(self, response):     a_href_list = response.xpath('//div[contains(@class,"article") and contains(@class,"block")]//a[@class="contentHerf"]/@href'     ).extract()     print(a_href_list)

启动蜘蛛命令

scrapy crawl <爬虫名> [--nolog]

注:--nolog参数不加表示一系列日志,一般用于调试,加此参数表示只输入print内容

示例:启动段子命令

scrapy crawl duanzi --nolog

 如何使用Scrapy网络爬虫框架

成功拿到每一个链接。

获取详情页内容

在上述,我们成功的获取到了每个段子的链接,但是会发现有的段子是不全的,需要进入进入详情页才能看到所以段子内容,那我们就使用爬虫来操作一下吧。

我们定义一下标题和内容。

如何使用Scrapy网络爬虫框架 

根据元素审查,标题的定位xpath是:

//h2[@class="article-title"]

 如何使用Scrapy网络爬虫框架

内容的xpath是:

//div[@class="content"]

 如何使用Scrapy网络爬虫框架

确定标题和内容的xpath定位之后,我们在python代码中实现一下。

:但是先解决一个问题,详情页属于第二次调用了,所以我们也需要进行调用第二次,再编写代码

如何使用Scrapy网络爬虫框架

代码

# 详情页 def detail(self, response):     title = response.xpath('//h2[@class="article-title"]/text()').extract()     content = response.xpath('//div[@class="content"]//text()').extract()     print("标题:" )     print(title)     print("内容")     print(content)  def parse(self, response):     a_href_list = response.xpath(         '//div[contains(@class,"article") and contains(@class,"block")]//a[@class="contentHerf"]/@href'     ).extract()     print(a_href_list)     base_url = "https://www.qiushibaike.com"     for a_href in a_href_list:         url = f"{base_url}{a_href}"         yield scrapy.Request(url=url, callback=self.detail)

结果

如何使用Scrapy网络爬虫框架

但是会发现啊,似乎每个都是列表形式,这似乎不太行呐,我们稍微修改一下代码,这样我们拿到的就是正常的文本了,如下图所示:

如何使用Scrapy网络爬虫框架

上述命令总结

创建爬虫项目

scrapy startproject <项目名称>

创建蜘蛛

scrapy genspider <蜘蛛名称> <网页的起始url>

启动爬虫,--nolog参数不加表示一系列日志,一般用于调试,加此参数表示只输入print内容

scrapy crawl <爬虫名> [--nolog]

关于“如何使用Scrapy网络爬虫框架”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用Scrapy网络爬虫框架

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

网络爬虫框架Scrapy怎么用

这篇文章将为大家详细讲解有关网络爬虫框架Scrapy怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛
2023-06-27

开源python网络爬虫框架Scrapy

介绍:所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所
2023-01-31

关于Python网络爬虫框架scrapy

这篇文章主要介绍了关于Python网络爬虫框架scrapy,爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合,需要的朋友可以参考下
2023-05-17

Python爬虫框架-scrapy的使用

ScrapyScrapy是纯python实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。Scrapy使用了Twisted异步网络框架来处理网络通讯,可以加快我们的下载速度,并且包含了各种中间件接口,可以灵活的完成各种需求1、安装
2022-06-02

scrapy爬虫框架怎么使用

这篇“scrapy爬虫框架怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“scrapy爬虫框架怎么使用”文章吧。一、s
2023-06-27

如何入门Python Scrapy爬虫框架

如何入门Python Scrapy爬虫框架,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Scrapy概述Scrapy是Python开发的一个非常流行的网络爬虫框架,可以用来
2023-06-02

爬虫Scrapy框架之css选择器如何使用

这篇文章将为大家详细讲解有关爬虫Scrapy框架之css选择器如何使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css选择器介绍在css中选择器是一种模式,用于选择需要添加样式的元素,css对html
2023-06-02

Python爬虫框架scrapy的使用示例

这篇文章主要介绍了Python爬虫框架scrapy的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效的工
2023-06-14

怎么使用Python的Scrapy爬虫框架

本篇内容介绍了“怎么使用Python的Scrapy爬虫框架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Scrapy是Python开发的一个
2023-06-02

如何实现Java手撸网络爬虫框架

这篇文章主要为大家展示了“如何实现Java手撸网络爬虫框架”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现Java手撸网络爬虫框架”这篇文章吧。首先介绍每个类的功能:DownloadPag
2023-06-20

Python的爬虫框架scrapy用21行代码写一个爬虫

开发说明 开发环境:Pycharm 2017.1(目前最新)开发框架:Scrapy 1.3.3(目前最新) 目标爬取线报网站,并把内容保存到items.json里 页面分析根据上图我们可以发现内容都在类为post这个div里下面放出post
2022-06-04

Python之Scrapy爬虫框架安装及使用详解

题记:早已听闻python爬虫框架的大名。近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享。有表述不当之处,望大神们斧正。 一、初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用
2022-06-04

Python爬虫框架之Scrapy中Spider的用法

Scrapy中Spider的用法 Spider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有
2022-06-02

python爬虫入门之Scrapy框架怎么用

这篇文章将为大家详细讲解有关python爬虫入门之Scrapy框架怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P
2023-06-14

Golang网络爬虫框架gocolly/colly怎么用

小编给大家分享一下Golang网络爬虫框架gocolly/colly怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安装go get -u github.co
2023-06-05

编程热搜

目录