【Python爬虫】Scrapy学习之路

目录

一、概述

二、安装部署

三、项目运行流程

四、框架结构解析

五、项目实例

六、项目整体代码

七、抓取效果截图

八、Scrapy框架总结

一、概述

1.它是一个为了爬取网站数据,提取结构性数据而编写的应用框架。
2.应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

二、安装部署

pip install Scrapy

三、项目运行流程

1.使用 scrapy startproject test_scrapy(项目名) 指令创建一个项目

scrapy startproject test_scrapy

2.使用 scrapy genspider scrapy_01 www.baidu.com 指令创建一个爬虫代码

scrapy genspider scrapy_01 www.baidu.com

其中,scrapy_01为文件名,www.baidu.com为抓取的网址,其都可以自己指定。

3.在创建的Scrapy文件上进行编写代码

4.使用 scrapy crawl scrapy_01 -o ./phone.csv 指令启动项目或使用 scrapy crawl scrapy_01 -o ./phone.csv 指令启动并将结果存储在phone.csv文件中

#启动项目
scrapy crawl scrapy_01 -o

#也可以启动并将结果存储在phone.csv文件中
scrapy crawl scrapy_01 -o ./phone.csv

四、框架结构解析

1.项目目录

【Python爬虫】Scrapy学习之路

scrapy.cfg 【项目的配置文件】
settings.py 【项目的配置文件】
spiders/ 【防止 爬虫代码的目录】

  1. 爬虫文件的名字name不能重复
name = 'scrapy_01'

3.scrapy 允许爬取的 url

allowed_domains = ['www.baidu.com']

4.scrapy 去爬取的 url 列表

start_urls = ['http://www.baidu.com/','https://www.sougou.com']

五、项目实例

使用Scrapy爬虫框架,进行爬取58同城的手机信息,并将信息保存在csv文件中。

六、项目整体代码

import scrapy

class Scrapy01Spider(scrapy.Spider):
    name = 'scrapy_01'
    allowed_domains = ['www.baidu.com']
    start_urls = ['https://dl.58.com/shouji']

    def parse(self, response):

        #1.返回selector(xpath,data[标签内容])
        tr_list = response.xpath('//div[@class="containnerWrap clearfix"]/section/div[@class="cleft"]/table//tr')
        res = []
        for index,tr in enumerate(tr_list):
            message_get = tr.xpath('./td/a/div[@class="new-long-tit new-long-tit2"]/text()').get()

            dic = {
                'id' : index,
                'message' : message_get
            }
            res.append(dic)

        return res

七、抓取效果截图

【Python爬虫】Scrapy学习之路

八、Scrapy框架总结

Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。

Original: https://blog.csdn.net/happy2403/article/details/124076534
Author: 幽默岐
Title: 【Python爬虫】Scrapy学习之路

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/789740/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【课程笔记】中科大凸优化(三)

    为什么不是条件越多的,表示范围越小? 因为在定义仿射集、凸集的时候,要求的是”任意的(\theta)组合满足”。”任意”的限制越少,…

    Python 2023年10月26日
    043
  • Express.js 笔记

    在 myApp.js文件的前两行中,创建一个 Express 应用对象很简单。 这个对象有几种方法,一个基础的方法是 app.listen(port)。 它处于运行状态时告诉服务器…

    Python 2023年6月9日
    061
  • Python基础语法:函数

    Python语言常用的内建函数还包括数据类型转换函数,以下代码演示了常用类型转换函数的方法。 print("int(’12’):", int(’12’)) pr…

    Python 2023年10月31日
    032
  • MNN简介

    一、轻量级高性能推理引擎 1.简介 MNN 是一个高效、轻量的深度学习框架。它支持深度模型推理与训练,尤其在端侧的推理与训练性能在业界处于领先地位。目前,MNN 已经在阿里巴巴的手…

    Python 2023年9月27日
    065
  • 大数据——Scrapy爬虫框架安装配置及创建使用

    Scrapy爬虫框架安装配置及创建使用 Scrapy爬虫框架安装 创建一个Scrapy爬虫框架 Scrapy爬虫框架安装 在命令提示符下载 conda install scrapy…

    Python 2023年10月5日
    049
  • numpy知识点记录

    np.arange(start, stop, step, dtype=None):arange函数用于创建等差数组; start:可忽略不写,默认从0开始;起始值stop:结束值;…

    Python 2023年8月27日
    043
  • Python动态属性有什么用

    Python 动态属性的概念可能会被面试问到,在项目当中也非常实用,但是在一般的编程教程中不会提到,可以进修一下。 先看一个简单的例子。创建一个 Student 类,我希望通过实例…

    Python 2023年5月25日
    062
  • 《精通Python爬虫框架Scrapy》第10章 理解Scrapy性能

    通常情况下,性能很容易出现问题。对于Scrapy来说,性能就不只是容易出现问题了,而是几乎肯定会出现,因为它有很多有悖常理的行为。除非你对Scrapy内部有非常好的理解,否则你会发…

    Python 2023年10月5日
    044
  • 《四》Redux Toolkit

    Redux Toolkit(RTK)是 Redux 官方推荐的编写 Redux 逻辑的方法。Redux 的编写逻辑过于繁琐,并且代码通常分拆在多个文件中,Redux Toolkit…

    Python 2023年11月6日
    031
  • 聊一聊责任链模式

    将一堆”事情”串联在一起,有序执行,就叫责任链 一、概述 责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作…

    Python 2023年10月16日
    034
  • 【大数据风控】解决Python conda install 导入toad和scorecard的报错

    第一步:使用cmd下载toad包和scorecard包; 出现如下提示:Collecting package metadata (repodata.json): doneSolvi…

    Python 2023年9月8日
    064
  • Flink同步Kafka数据到ClickHouse分布式表

    公众号文章都在个人博客网站:https://www.ikeguang.com/ 同步,欢迎访问。 业务需要一种OLAP引擎,可以做到实时写入存储和查询计算功能,提供高效、稳健的实时…

    Python 2023年10月13日
    040
  • kafka详解(一)–kafka是什么及怎么用

    kafka是什么 在回答这个问题之前,我们需要先了解另一个东西–event streaming。 什么是event streaming 我觉得, event strea…

    Python 2023年10月23日
    029
  • 深度学习-Tensorboard可视化面板

    文章目录 简介 安装 SummaryWriter * 新建 添加数字 运行 添加图片 添加直方图 添加模型结构 实战 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍…

    Python 2023年9月27日
    055
  • Part15:Pandas怎样实现groupby分组统计

    Pandas怎样实现groupby分组统计 类似SQL: select city,max(temperature) from city_weather group by city;…

    Python 2023年8月7日
    036
  • 解决使用matplotlib.pyplot画图包含中文乱码显示问题(macbook上 family ‘sans-serif‘ not found 问题)

    一、matplotlib画图中文乱码问题 使用 matplotlib.pyplot画图,有中文字体会显示乱码问题,这时需要添加如下代码: import matplotlib.pyp…

    Python 2023年8月1日
    058
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球