python爬虫之scrapy框架基本使用

news2024/11/18 5:54:35

python爬虫之scrapy框架基本使用

1、环境安装:pip install scrapy
2、创建一个工程:scrapy startproject xxxPro
3、cd xxxPro
4、在spiders子目录中创建一个爬虫文件:scrapy genspider spiderName www.xxx.com
5、执行工程:scrapy crawl spiderName

基本使用实例如下:
1、pycharm终端输入:scrapy startproject firstBlood,创建一个firstBlood文件夹。在这里插入图片描述
firstBlood文件夹下存放文件展示如下,包括firstBlood同名文件夹和scrapy.cfg文件。其中:
scrapy.cfg:当前工程的配置文件。
spider:爬虫文件夹/爬虫目录,存放爬虫源文件。
settings.py:工程相关配置,经常使用。
在这里插入图片描述
2、进入firstBlood文件夹下。
终端输入:cd firstBlood
3、在firstBlood子目录中创建一个first爬虫文件。爬取网站www.xxx.com,之后可修改。
终端输入:scrapy genspider first www.xxx.com
创建的first爬虫文件如下所示:
在这里插入图片描述
first.py相关代码解释和扩展如下所示:

import scrapy


class FirstSpider(scrapy.Spider):
    #爬虫文件的名称:就是爬虫源文件的一个唯一标识
    name = "first"
    #允许的域名:用来限定start_urls列表中哪些url可以进行请求发送,通常情况下不用
    # all的url会被scrapy自动进行请求的发送
    start_urls = ["https://www.baidu.com","https://www.sogou.com"]

    #用作于数据解析:response参数表示的就是请求成功后对应的响应对象,请求了多少网站,response就存放了多少响应对象
    def parse(self, response):
        print(response)

4、first.py代码保存后,终端输入:scrapy crawl first运行first.py
输出许多日志信息,其中部分如下所示。其中红线配置导致运行输出后没有输出运行结果。
在这里插入图片描述
可通过打开settings.py配置文件,将ROBOTSTXT_OBEY = True改为ROBOTSTXT_OBEY = False,再次运行first.py,可得到如下示图。
在这里插入图片描述
补充:
1、scrapy crawl first --nolog可不输出日志。但如果程序出错,观察不到错误信息。
在这里插入图片描述
2、在settings.py文件中任意位置添加如下代码块,可只输出结果和错误日志,方便调试代码。

#显示指定类型的日志信息
LOG_LEVEL = "ERROR"

`

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

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

相关文章

当年很多跑到美加澳写代码的人现在又移回香港?什么原因?

当年很多跑到美加澳写代码的人现在又移回香港?什么原因? 近年来,确实有部分曾经移民到美国、加拿大、澳大利亚等地的香港居民选择移回香港。这一现象与多种因素相关,主要可以归结为以下几点: 疫情后的环境变化&#…

高通源代码版本ADK工具版本源代码release版本MDE版本介绍

0 Preface/Foreword 1 版本介绍 高通代码存放在chipcode中,网址URL:Chipcode 1.1 高通源代码版本 Bluetooth Audo芯片的高通源代码版本号(类似于分类的类名):ADK.SRC.1.0 (最新qcc307x系列及之后的芯片如…

如何用matplotlib绘制图像分类任务的类别特征空间分布

import matplotlib.pyplot as plt import numpy as np from sklearn.decomposition import PCA from sklearn.datasets import load_iris from mpl_toolkits.mplot3d import Axes3D# 加载示例数据(Iris 数据集) data load_iris() X data.data y data.…

wordpress建站有哪些优点

对于绝大多数站长来说,使用wordpress建站是一个非常不错的选择。那么wordpress建站有哪些优点呢?下面小编就来为大家解答。 1.wordpress是什么? WordPress是一款全球最受欢迎的内容管理系统(CMS),主要用于…

【第11章】MyBatis-Plus条件构造器(上)

文章目录 前言一、功能详解1. allEq2. eq3. ne4. gt5. ge6. lt7. le8. between9. notBetween10. like11. notLike12. likeLeft13. likeRight14. notLikeLeft15. notLikeRight16. isNull17. in18. notIn19. inSql20. notInSql21. eqSqlSince 3.5.622. gtSql Since 3.4.3.223. ge…

LLM大模型工程师面试经验宝典--进阶版(2024.7月最新)

一、什么是生成式大模型? 生成式大模型(一般简称大模型LLMs)是指能用于创作新内容,例如文本、图片、音频以及视频的一类 深度学习模型。相比普通深度学习模型,主要有两点不同: 1. 模型参数量更大&#xff…

deepin基于apt-mirror同步软件源及构建本地内网源

1.安装apt-mirror sudo apt install -y apt-mirror2.配置apt-mirror(/etc/apt/mirror.list) sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.deepin.bak #备份配置文件 sudo gedit /etc/apt/mirror.list修改如下: deb [trustedyes] https://mirrors.bfsu.ed…

KVB安全投资小知识:为什么聪明的交易员从不预测方向?

摘要:在金融市场中,聪明的交易员从不依赖预测市场方向,他们通过风险管理、交易策略和情绪控制等方法获得长期稳定的盈利。这篇文章详细分析了为什么聪明的交易员选择不预测市场方向,而是专注于其他更重要的方面,如风险…

Qt实现手动切换多种布局

引言 之前写了一个手动切换多个布局的程序,下面来记录一下。 程序运行效果如下: 示例 需求 通过点击程序界面上不同的布局按钮,使主工作区呈现出不同的页面布局,多个布局之间可以通过点击不同布局按钮切换。支持的最多的窗口…

HarmonyOS Next开发学习手册——文本输入 (TextInput/TextArea)

TextInput、TextArea是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等,也可以结合其它组件构建功能页面,例如登录注册页面。具体用法请参考 TextInput 、 TextArea 。 创建输入框 TextIn…

【一篇文章带你搞懂--拉链表!!!拉链表的原理是什么!】

前言: 💞💞大家好,我是书生♡,今天主要和大家分享一下拉链表的原理以及使用,希望对大家有所帮助。 大家可以关注我下方的链接更多优质文章供学习参考。 💞💞代码是你的画笔,创新是你…

怎样查看vsphere client 的登录日志

- 问题摘要: 怎样查看vsphere client 的登录日志 - 解决方案/工作方法 1.登录vsphere client > vc > Monitor > Tasks and Events > Events, 查看日志 2. 查看VC 的websso.log日志 /var/log/vmware/sso/websso.log 3. 可以把websso.log文件拿到本地电…

Java进阶学习|Day4.Java多线程,线程池

文章目录 了解多线程CPU进程(Process)线程多线程开发多线程优点 实现方式继承Thread类实现Runnable接口实现Callable接口 线程状态转换线程状态线程调度调整线程优先级线程睡眠线程等待线程让步线程加入线程唤醒 线程同步线程同步方式多线程间通信 线程池了解线程池定义常见接口…

操作系统入门 -- 磁盘管理

操作系统入门 – 磁盘管理 1.磁盘结构 1.1 磁盘 表盘有一些磁性物质组成的盘片,可以利用这些磁性物质存储二进制数据 1.2 磁道 一个盘片上被划分为很多圆环,这些圆环就是磁道 1.3 扇区 上述的圆环又被分为很多部分,这些部分称为扇区。…

Toshiba东芝TB6612FNG电机驱动IC:释放性能与多功能性

在嵌入式系统和机器人技术领域,电机控制是一个关键方面,对项目的性能和可靠性有着显著影响。东芝的TB6612FNG电机驱动IC作为一个稳健且多功能的解决方案,在驱动双直流电机方面脱颖而出,提供了高性能、可靠性和易用性。本文将深入探…

计算机视觉 | 基于 PointNet 网络的飞机零件 3D 点云分割

目录 一、简要介绍二、环境设置2.1 实验配置2.2 必要库安装 三、数据集解析3.1 数据集加载3.2 数据文件夹结构3.3 点云数据可视化3.4 数据获取与预处理3.5 数据集定义 四、模型组网4.1 PointNet 介绍4.2 Paddle模型组网4.3 模型概要 五、模型训练六、模型预测七、总结 Hi&#…

MySQL之高可用性和应用层优化(一)

高可用性 故障转移和故障恢复 在应用中处理故障转移 有时候让应用来处理故障转移会更加简单或者更加灵活。例如,如果应用遇到一个错误,这个错误外部观察者正常情况下是无法察觉的,例如关于数据库损坏的错误日志信息,那么应用可…

硬件开发笔记(二十三):贴片电阻的类别、封装介绍,AD21导入贴片电阻原理图封装库3D模型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140110514 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

一文全概括,建议收藏,那些你不可错过的IC设计书籍合集(可下载)

集成电路设计工程师的角色不仅是推动技术创新的中坚力量,更是实现产品从概念到现实的关键桥梁。随着对高性能、低功耗芯片的需求不断增长,IC设计工程师的专业技能和知识深度成为了衡量其职业价值的重要标准。无论是在数字逻辑设计、功能验证、可测试性设…

【Python机器学习】模型评估与改进——分组交叉验证

分组交叉验证是非常常见的一种交叉验证策略,它适用于数据中的分组高度相关时。比如我们想构建一个从人脸图片中识别情感的系统,并且收集了100个人的照片的数据集,其中每个人都进行了多次拍摄,分别展示了不同的情感。我们的目标是构…