【Scrapy框架的安装和基本用法】 𙦑

目录

原文:
http://blog.gqylpy.com/gqy/361

@(Scrapy框架的安装和基本用法)

什么是Scrapy?



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

开始安装



如果是Windows系统,应按照下面的顺序进行安装:

  1. pip3 install wheel
  2. 打开网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    复制搜索:Twisted?18.9.0?cp36?cp36m?win_amd64.whl ,然后下载它
    进入下载目录,执行: pip3 install Twisted-18.9.0-cp36-cp36m-win_amd64.whl
  3. pip3 install pywin32
  4. pip3 install scrapy

构建你的项目



第一步,打开终端,执行 scrapy startproject 项目名称 来构建一个项目(项目生成在当前目录下),项目的目录结构如下:

project_name/  # 是你定义的项目名称
  project_name/  # 是你定义的项目名称
      spiders/  # 用于爬虫文件
          __init\_.py
      __init__.py
      items.py  # 数据结构模板文件
      middlewares.py  # 中间件
      pipelines.py  # 管道文件
      settings.py  # 配置文件(真正配置爬虫的文件)
  scrapy.cfg  # 也是配置文件

第二步,进入上一步骤创建的项目目录(终端),执行 scrapy genspider 应用名称 爬取网页的起始URL 来创建一个爬虫应用程序,创建的爬虫应用程序生成在spiders/目录下:

# -*- coding: utf-8 -*-
import scrapy

class Test01Spider(scrapy.Spider):

    # 应用名称
    name = 'test01'

    # 指定爬取的域名(如果你写了此属性,则非此域名的URL无法爬取)
    # allowed_domains = ['www.baidu.com']

    # 起始爬取的URL
    start_urls = ['https://www.baidu.com/']
    # 起始爬取的URL有多条时,则会将每条URL的响应数据(response)都调用一遍下面的parse函数

    def parse(self, response):
        """
        访问起始URL并获取结果后的回调函数
        :param response: 向起始的RUL发送请求后,获取的响应对象
        :return: 该方法的返回值必须为 可迭代对象 或 None
        """
        pass

第三步,打开settings.py文件,修改必要配置:

# 第19行,伪装请求载体身份(UA)
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'

# 第22行,是否遵守robots协议
ROBOTSTXT_OBEY = True

第四步,执行爬虫程序,执行方式有如下两种:

  • scrapy crawl 应用名称 这种执行形式会显示执行的日志信息
  • scrapy crawl 应用名称 --nolog 不显示执行的日志

简单使用



爬取你的CSDN博客中所有文章和URL的对应关系

爬虫应用文件内容如下:

# -*- coding: utf-8 -*-
import scrapy

class Test01Spider(scrapy.Spider):
    name = 'test01'  # 应用名称

    # 允许爬取的域名(如果你指定了此属性,则非此域名的URL无法爬取)
    allowed_domains = ['https://blog.csdn.net']

    path = '/qq_41964425'  # 你的CSDN博客主页路径
    max_page = 7  # 你的CSDN博客中一共有多少页博客

    # 将你的CSDN博客的每一页 都添加到起始爬取的URL中
    start_urls = []
    for i in range(1, max_page + 1):
        start_urls.append(allowed_domains[0] + path + '/article/list/' + str(i))

    def parse(self, response):
        """
        访问起始URL并获取结果后的回调函数
        :param response: 向起始的RUL发送请求后,获取的响应对象
        :return: 该方法的返回值必须为 可迭代对象 或 None
        """

        # 定位你的每篇博文的div
        div_list = response.xpath('//div[@class="article-item-box csdn-tracking-statistics"]')  # type:list
        # xpath为response中的方法,可以将xpath表达式直接作用于该函数中

        # 每个人的博客,每一页都有这篇文章,你打开源码看看就知道了
        div_list.pop(0)  # 帝都的凛冬 https://blog.csdn.net/yoyo_liyy/article/details/82762601

        # 开始处理解析到的数据
        content_list = []
        for div in div_list:
            # xpath函数返回的为列表,列表中存放的数据为Selector类型的数据
            # xpath解析到的内容被封装到了Selector对象中,需要调用extract()函数将解析到的内容从Selector中取出
            title = div.xpath('.//h4/a/text()')[-1].extract().strip()  # 获取博文标题
            url = div.xpath('.//h4/a/@href').extract_first().strip()  # 获取博文URL
            # extract():解析指定的元素,也可以解析列表中的所有元素  extract_first():取出列表中的第一个元素并进行操作

            # 保存内容(注意格式)
            content_list.append({'title': title, 'url': url})

        return content_list

跑起来:
运行此命令 scrapy crawl test01 --nolog -o text.csv 将进行持久化存储,-o 指定保存的文件(注意文件的格式,建议使用 .csv)

补充:Response对象的方法



原文:
http://blog.gqylpy.com/gqy/361

原文地址:https://www.cnblogs.com/ggg566/p/11417457.html

时间: 2024-11-05 20:43:26

【Scrapy框架的安装和基本用法】 𙦑的相关文章

Python中scrapy框架如何安装配置

在python学习群里发现很多学习网络爬虫技术的童靴都搞不懂python爬虫框架scrapy的安装配置,在学习python网络爬虫初级阶段的时候我们利用urllib和urllib2库以及正则表达式就可以完成了,不过遇到更加强大的爬虫工具--爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows平台: 我的系统是Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/l

python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍

scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试.(引用自:百度百科) scrapy官方网站:https://scrapy.org/ scrapy官方文档:https://doc.scrapy.org/en/latest/ scrapy框架安装 首先我们安装scrapy,使用如下命令 pip install scrapy 此时很多人应该都会遇到如

scrapy框架的安装

# 1.在安装scrapy前需要安装好相应的依赖库, 再安装scrapy, 具体安装步骤如下: (1).安装lxml库: pip install lxml (2).安装wheel: pip install wheel (3).安装twisted: pip install twisted文件路径 (twisted需下载后本地安装,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted) (版本选择如下图,版本后面有解释,请根据自己实际选择)

关于Scrapy框架的安装

Scrapy介绍与环境安装 Scrapy介绍与环境安装 What is scrapy? An open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way.--Scrapy Home Page Scrapy是Python开发的一个快速web爬虫抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrap

Python3.6下scrapy框架的安装

首先考虑使用最简单的方法安装 pip install scrapy 命令安装,提示 Failed building wheel for Twisted Microsoft Visual C++ 14.0 is required... 于是开始问度娘应该怎样安装,看了几篇博客,虽然和我的问题不十分相同,但是也受到了启发,知道应该怎样解决我的问题了.解决问题的过程总结如下: 1.直接使用pip install scrapy安装不成功可以安装whl格式的包 首先下载scrapy的whl包 下载地址:h

python第三方库scrapy框架的安装

1.确认python和pip安装成功 2.安装win32py          提供win32api,下载地址:https://sourceforge.net/projects/pywin32/files/ 3.安装lxml    lxml是一种使用 Python 编写的库,可以迅速.灵活地处理 XML.下载地址 https://pypi.python.org/pypi/lxml/3.3.1,可用pip下载, 下载命令:python -m pip install lxml 4.出现错误:Micr

Windows和Linux下scrapy框架的安装

windows下安装: 1.安装Anaconda环境管理工具 也可以使用pip安装,值得注意的是如果你使用的是pip安装,你需要解决相应的包依赖(解决依赖一般会让你怀疑人生.怀疑scrapy,建议还是用Anaconda安装,少年!) Anaconda 下载地址:https://www.anaconda.com/download/    里面有不同的平台,不同的版本,根据您的平台进行下载即可!这里的话建议大家下载Anaconda全包,而不是Miniconda,因为后者虽然小巧,但会出现一些问题,如

python爬虫之Scrapy框架中的Item Pipeline用法

当Item在Spider中被收集之后, 就会被传递到Item Pipeline中进行处理. 每个item pipeline组件是实现了简单的方法的python类, 负责接收到item并通过它执行一些行为, 同时也决定此item是否继续通过pipeline, 或者被丢弃而不再进行处理. item pipeline的主要作用 : 1. 清理html数据 2. 验证爬取的数据 3. 去重并丢弃 4. 将爬取的结果保存到数据库中或文件中 编写自己的item pipeline : process_item

[Python][Scrapy 框架] Python3 Scrapy的安装

1.方法(只介绍 pip 方式安装) PS.不清楚 pip(easy_install) 可以百度或留言. cmd命令: (直接可以 pip,而不用跳转到 pip.exe目录下,是因为把所在目录加入 Path 环境变量中) 通过 pip install 安装的好处: 安装起来非常的方便 安装 scrapy 和依赖包 包的一致性可以保证 2.可能遇到的一些问题 安装到的时候有些自动装不上: 上图显示装 'twisted.test.raiser' 这个子扩展包的时候自动装不上去,因为需要 VC++ 1