Python 爬虫 之scrapy 框架

在这里插入图片描述

文章目录

  • 常用的命令
  • 开始爬虫
    • 请求与响应
    • 让控制台只输出想要的信息
    • 创建一个py 文件来帮忙运行爬虫
  • 工作原理图
  • 实战

常用的命令

Scrapy是一个用于爬取网站数据的Python框架,以下是一些常用的Scrapy命令:

开始的时候 用 cd 进入你想创建scrapy 的文件夹 ,然后开始下面的操作

  1. 创建新的Scrapy项目:

    scrapy startproject project_name
    

    这个命令会创建一个新的Scrapy项目,其中project_name是你为项目指定的名称。

  2. 创建一个新的Spider:

    scrapy genspider spider_name website_url
    

    这个命令会生成一个新的Spider文件,你需要提供spider_name作为Spider的名称和website_url作为爬取的起始网址。

  3. 运行Spider:

    scrapy crawl spider_name
    

    这个命令会启动指定的Spider,开始爬取数据。你需要将spider_name替换为你要运行的Spider的名称。

  4. 导出爬取数据为JSON文件:

    scrapy crawl spider_name -o output.json
    

    这个命令会运行Spider并将爬取的数据导出为一个JSON文件。你可以将output.json替换为你想要的输出文件名和格式。

  5. 导出爬取数据为CSV文件:

    scrapy crawl spider_name -o output.csv
    

    这个命令与上面的命令类似,不过它将数据导出为CSV格式。

  6. 查看可用的Spider:

    scrapy list
    

    这个命令会列出项目中所有可用的Spider,你可以选择其中一个来运行。

  7. 检查Spider的数据爬取情况:

    scrapy crawl spider_name --loglevel=INFO
    

    这个命令会以INFO级别的日志显示Spider的爬取情况,有助于调试和监视爬取过程。

  8. 检查Spider的爬取速度和性能:

    scrapy crawl spider_name --profile=output.cprofile
    

    这个命令会生成性能分析文件,你可以使用工具来分析Spider的性能瓶颈。

开始爬虫

请求与响应


import scrapyclass ExampleSpider(scrapy.Spider):name = "example" #爬虫的名字(唯一)allowed_domains = ["ssr1.scrape.center"] # 限定的域名,可选start_urls = ["https://ssr1.scrape.center/"] #当前的域名def parse(self, response): # 当在命令行运行scrapy crawl example 之后会发送请求,得到一个响应对象responceprint(response.text)print(response.status)pass

让控制台只输出想要的信息

在你的settings 文件中加入

LOG_FILE = "爬虫名字.log"

在这里插入图片描述

这样,那些日志就只会存储在日志文件中,而不是在控制台中

创建一个py 文件来帮忙运行爬虫

在你的爬虫项目里创建一个py 文件
在这里插入图片描述

在你的run 文件中

from scrapy.cmdline import executeexecute(["scrapy","crawl","example"])
# 对应于你的运行scrapy crawl example
#这样你就可以直接运行run 文件来实现你的结果了

工作原理图

在这里插入图片描述

实战

网站https://ssr1.scrape.center/爬取电影名
在这里插入图片描述


import scrapy
from lxml import etreeclass ExampleSpider(scrapy.Spider):name = "example" #爬虫名字allowed_domains = ["ssr1.scrape.center"] #限定的域名(可选)start_urls = ["https://ssr1.scrape.center/"]# 起始的域名def parse(self, response):html = etree.HTML(response.text)#对返回的html 文本进行解析allname = html.xpath(r'//h2[@class="m-b-sm"]/text()')# 寻找电影名字print(allname)pass

效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十一届蓝桥杯青少组省赛Python中高级组真题及赏析

练习最好的办法就是实战。拿真题来做,不是解析是赏析。带着欣赏的眼光看,题目不但不难,反倒增加不少乐趣。接下来揭开第十一届蓝桥杯青少组省赛python编程题的神秘面纱,我们来一一赏析,看难不难。 选择题 选择题都比较…

Python遥感开发之批量拼接

Python遥感开发之批量拼接 1 遥感图像无交错的批量拼接2 遥感图像有交错的批量拼接 前言:主要借助python实现遥感影像的批量拼接,遥感影像的批量拼接主要分为两种情况,一种是遥感图像无交错,另一种情况是遥感图像相互有交错。具体…

2023-12-01 LeetCode每日一题(找出叠涂元素)

2023-12-01每日一题 一、题目编号 2661. 找出叠涂元素二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。 从下标 0 开始遍历 arr 中的每…

FL Studio21.2汉化永久中文语言包

FL Studio21.2这款软件在国内被广泛使用,因此又被称为"水果"。它提供音符编辑器,可以针对作曲者的要求编辑出不同音律的节奏,例如鼓、镲、锣、钢琴、笛、大提琴、筝、扬琴等等任何乐器的节奏律动。此外,它还提供了方便快…

《opencv实用探索·八》图像模糊之均值滤波简单理解

1、前言 什么是噪声? 该像素与周围像素的差别非常大,导致从视觉上就能看出该像素无法与周围像素组成可识别的图像信息,降低了整个图像的质量。这种“格格不入”的像素就被称为图像的噪声。如果图像中的噪声都是随机的纯黑像素或者纯白像素&am…

Oracle(2-7)Instance and Media Recovery Structures

文章目录 一、基础知识1、体系结构详解2、Database Files 数据库文件3、Database Other Files 其他数据文件4、Dynamic Views 动态视图5、Large Pool6、DB Buffer Cache,DBWn7、Configuring Tablespaces 配置表空间8、Redo Log Buffer, LGWR9、Database Checkpoints 数据库检查…

wordpress忘记密码怎么办?

有的时候,我们会忘记网站的密码,所以网站的密码要记住,那记不住,怎么样才可以登录后台呢?下面来给大家说一下方法,第一种方法,就是进入数据库里面修改密码,第二种就是从新搭建&#…

Redis--10--Pipeline

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Pipeline举例比较普通模式与 PipeLine 模式小结: Pipeline 前面我们已经说过,Redis客户端执行一条命令分为如下4个部分:1)发送命…

echarts 地图

效果图 业务组件 <template><mapEcharts :itemStyle"mapProps.itemStyle" :emphasisLabelStyle"mapProps.emphasisLabelStyle":emphasisItemStyle"mapProps.emphasisItemStyle" :labelInfo"mapProps.labelInfo":rippleEffec…

LeetCode 2661. 找出叠涂元素:多次映射

【LetMeFly】2661.找出叠涂元素&#xff1a;多次映射 力扣题目链接&#xff1a;https://leetcode.cn/problems/first-completely-painted-row-or-column/ 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1&#xff0c;m * n] 内…

.[[backup@waifu.club]].wis勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 随着科技的不断发展&#xff0c;网络安全威胁也变得愈发严峻。最近&#xff0c;一种名为.[[backupwaifu.club]].wis的勒索病毒愈演愈烈&#xff0c;给用户的数据安全带来了极大的威胁。本文将深入介绍.[[backupwaifu.club]].wis病毒的特征、如何应对数据加密…

帆软的控件参数-笔记1

1.帆软的控件参数 变量可以通过模板->模板参数定义添加需要给变量赋值的控件&#xff0c;如下拉控件时&#xff0c;将控件名称命名为与模板参数同名帆软就会自行匹配。也可以不添加模板参数&#xff0c;直接给控件名称命名&#xff0c;该命名就是变量名&#xff0c;该变量名…

Vmware17虚拟机安装windows10系统

不要去什么系统之家之类的下载镜像&#xff0c;会不好安装&#xff0c;镜像被魔改过了&#xff0c;适合真实物理机上的系统在PE里安装系统&#xff0c;建议下载原版系统ISO文件 安装vmware17pro 下载地址https://dwangshuo.jb51.net/202211/tools/VMwareplayer17_855676.rar 解…

泊车功能专题介绍 ———— 汽车全景影像监测系统性能要求及试验方法(国标未公布)

文章目录 术语和定义一般要求功能要求故障指示 性能要求响应时间图像时延单视图视野范围平面拼接视图视野平面拼接效果总体要求行列畸变拼接错位及拼接无效区域 试验方法环境条件仪器和设备车辆条件系统响应时间试验图像时延试验单视图视野范围试验平面拼接视图视野试验平面拼接…

Ubuntu 22.04安装Go 1.21.4编译器

lsb_release -r看到操作系统版本是22.04,uname -r看到内核版本是uname -r。 sudo wget https://studygolang.com/dl/golang/go1.21.4.linux-amd64.tar.gz下载编译器。 sudo tar -zxf go1.21.4.linux-amd64.tar.gz -C /goroot将文件解压到/goroot目录下&#xff0c;这个命令…

生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin

文章目录 前言1、IDEA打包工具&#xff1a;Artifacts1.1 创建Artifacts1.2 选择第三方jar文件1.3 打包Artifacts1.4 测试jar包 2、maven-shade-plugin2.1、pom文件添加2.2、打包2.3、测试jar包 总结 前言 当我们编写完Java程序后&#xff0c;为了提高执行效率通常会将应用程序…

vscode配置c++环境

我现在觉得vscode确实很好用&#xff0c;所以python和c都是用的这个。 首先是安装vs&#xff1a; 官网寻找即可&#xff1a;https://code.visualstudio.com/ 安装好后需要装一些插件&#xff1a; 装上这两个插件&#xff0c;c/c&#xff0c;code runner 接着安装c编译器mi…

canvas基础:绘制虚线

canvas实例应用100 专栏提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。 canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重要的帮助。 文章目录 示例…

Python爬虫教程27:秀啊!用Pandas 也能爬虫??

说到爬虫&#xff0c;大家可能都知道requests、re、scrapy、selenium等等一些工具库。虽然它低调&#xff0c;但功能非常强大&#xff0c;用于抓取Table表格型数据时&#xff0c;简直是个神器&#xff0c;没有必要去F12研究HTML页面结构甚至写正则表达式解析字段。 #我的Pytho…

Python教程78:聊聊exec和eval()函数,有什么用法区别

exec 和 eval 是 Python 中的两个内置函数&#xff0c;它们都可以执行Python代码&#xff0c;但它们的使用方式和目的有所不同。 1.exec()函数用于执行动态的 Python 代码&#xff0c;你可以使用exec来执行存储在字符串或对象代码中的 Python 代码。exec 不会返回任何结果&…