Scrapy 배우기: 기초부터 고급까지

PHPz
풀어 주다: 2024-02-19 19:07:06
원래의
989명이 탐색했습니다.

Scrapy 배우기: 기초부터 고급까지

Scrapy 설치 튜토리얼: 입문부터 숙련까지 특정 코드 예제가 필요합니다

소개:
Scrapy는 웹 페이지 크롤링, 데이터 추출, 데이터 정리 및 지속성을 수행하는 데 사용할 수 있는 강력한 Python 오픈 소스 웹 크롤러 프레임워크입니다. 일련의 작업을 기다립니다. 이 기사에서는 Scrapy 설치 프로세스를 단계별로 안내하고 Scrapy 프레임워크를 시작하는 단계부터 능숙해지는 데 도움이 되는 특정 코드 예제를 제공합니다.

1. Scrapy 설치
Scrapy를 설치하려면 먼저 Python과 pip가 설치되어 있는지 확인하세요. 그런 다음 명령줄 터미널을 열고 다음 명령을 입력하여 설치하십시오.

pip install scrapy
로그인 후 복사

설치 프로세스에 다소 시간이 걸릴 수 있습니다. 잠시 기다려 주십시오. 권한 문제가 있는 경우 명령 앞에 sudo를 붙여보세요. sudo

二、创建Scrapy项目
安装完成后,我们可以使用Scrapy的命令行工具创建一个新的Scrapy项目。在命令行终端中,进入您想要创建项目的目录,并执行以下命令:

scrapy startproject tutorial
로그인 후 복사

这将在当前目录下创建一个名为"tutorial"的Scrapy项目文件夹。进入该文件夹,我们可以看到如下的目录结构:

tutorial/
    scrapy.cfg
    tutorial/
        __init__.py
        items.py
        middlewares.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
로그인 후 복사

其中,scrapy.cfg是Scrapy项目的配置文件,tutorial文件夹是我们自己的代码文件夹。

三、定义爬虫
在Scrapy中,我们使用爬虫(spider)来定义抓取网页和提取数据的规则。在spiders目录下创建一个新的Python文件,命名为quotes_spider.py(可以根据实际需求自行命名),然后使用以下代码定义一个简单的爬虫:

import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        'http://quotes.toscrape.com/page/1/',
    ]

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'text': quote.css('span.text::text').get(),
                'author': quote.css('span small::text').get(),
            }

        next_page = response.css('li.next a::attr(href)').get()
        if next_page is not None:
            yield response.follow(next_page, self.parse)
로그인 후 복사

在上述代码中,我们创建了一个名为QuotesSpider的爬虫。其中,name属性是爬虫的名称,start_urls属性是我们希望抓取的第一个页面的URL,parse方法是爬虫默认的解析方法,用于解析网页和提取数据。

四、运行爬虫
在命令行终端中,进入项目的根目录下(即tutorial文件夹),并执行以下命令来启动爬虫并开始抓取数据:

scrapy crawl quotes
로그인 후 복사

爬虫将会开始抓取初始URL中的页面,并根据我们定义的规则进行解析和提取数据。

五、保存数据
一般情况下,我们会将抓取到的数据进行保存。在Scrapy中,我们可以使用Item Pipeline来实现数据的清洗、处理和存储。在pipelines.py文件中,添加以下代码:

import json

class TutorialPipeline:
    def open_spider(self, spider):
        self.file = open('quotes.json', 'w')

    def close_spider(self, spider):
        self.file.close()

    def process_item(self, item, spider):
        line = json.dumps(dict(item)) + "
"
        self.file.write(line)
        return item
로그인 후 복사

在上述代码中,我们创建了一个名为TutorialPipeline的Item Pipeline。其中,open_spider方法在爬虫启动时会被调用,用于初始化文件;close_spider方法在爬虫结束时会被调用,用于关闭文件;process_item方法会对每个抓取到的数据项进行处理和保存。

六、配置Scrapy项目
settings.py文件中,可以对Scrapy项目进行各种配置。以下是一些常用的配置项:

  • ROBOTSTXT_OBEY:是否遵守robots.txt协议;
  • USER_AGENT:设置用户代理,在爬虫中可以模拟不同的浏览器;
  • ITEM_PIPELINES:启用和配置Item Pipeline;
  • DOWNLOAD_DELAY
  • 2. Scrapy 프로젝트 생성
설치가 완료되면 Scrapy의 명령줄 도구를 사용하여 새로운 Scrapy 프로젝트를 생성할 수 있습니다. 명령줄 터미널에서 프로젝트를 생성하려는 디렉터리로 이동하고 다음 명령을 실행합니다.

rrreee
이렇게 하면 현재 디렉터리에 "tutorial"이라는 이름의 Scrapy 프로젝트 폴더가 생성됩니다. 폴더에 들어가면 다음과 같은 디렉터리 구조를 볼 수 있습니다:

rrreee🎜 그 중 scrapy.cfg는 Scrapy 프로젝트의 구성 파일이고, tutorial 폴더는 우리의 자신의 코드 폴더. 🎜🎜3. 크롤러 정의🎜Scrapy에서는 스파이더를 사용하여 웹 페이지를 크롤링하고 데이터를 추출하는 규칙을 정의합니다. spiders 디렉터리에 새 Python 파일을 만들고 이름을 quotes_spider.py로 지정한 후(실제 필요에 따라 이름을 지정할 수 있음) 다음 코드를 사용하여 간단한 크롤러: 🎜 rrreee🎜위 코드에서는 QuotesSpider라는 이름의 스파이더를 만들었습니다. 그 중 name 속성은 크롤러의 이름이고, start_urls 속성은 크롤링하려는 첫 번째 페이지의 URL이며, parse 속성은 code> 방법은 크롤러의 기본값입니다. 구문 분석 방법은 웹 페이지를 구문 분석하고 데이터를 추출하는 데 사용됩니다. 🎜🎜4. 크롤러 실행 🎜명령줄 터미널에서 프로젝트의 루트 디렉터리(예: tutorial 폴더)를 입력하고 다음 명령을 실행하여 크롤러를 시작하고 데이터 크롤링을 시작합니다. 크롤러는 초기 URL에서 페이지 크롤링을 시작하고 우리가 정의한 규칙에 따라 데이터를 구문 분석하고 추출합니다. 🎜🎜5. 데이터 저장🎜 일반적인 상황에서는 캡처된 데이터가 저장됩니다. Scrapy에서는 Item Pipeline을 사용하여 데이터를 정리, 처리 및 저장할 수 있습니다. pipelines.py 파일에 다음 코드를 추가합니다. 🎜rrreee🎜위 코드에서는 TutorialPipeline이라는 항목 파이프라인을 만들었습니다. 그 중 open_spider 메소드는 크롤러가 파일 초기화를 시작할 때 호출되며, close_spider 메소드는 크롤러가 파일을 닫을 때 호출됩니다. process_item 메소드는 캡처된 각 데이터 항목을 처리하고 저장합니다. 🎜🎜6. Scrapy 프로젝트 구성🎜settings.py 파일에서 Scrapy 프로젝트에 대한 다양한 구성을 구성할 수 있습니다. 다음은 일반적으로 사용되는 구성 항목입니다. 🎜
  • ROBOTSTXT_OBEY: robots.txt 프로토콜을 준수할지 여부 🎜
  • USER_AGENT: 설정 사용자 에이전트, 크롤러에서 다양한 브라우저를 시뮬레이션할 수 있습니다. 🎜
  • ITEM_PIPELINES: 항목 파이프라인을 활성화하고 구성합니다. 🎜
  • DOWNLOAD_DELAY: 다운로드 지연을 설정하여 문제를 방지합니다. 대상 웹사이트의 피해 🎜🎜🎜 7. 요약 🎜위 단계를 거쳐 Scrapy 설치 및 사용이 완료되었습니다. 이 글이 여러분이 Scrapy 프레임워크를 시작하는 것부터 능숙해지는 데 도움이 되기를 바랍니다. Scrapy의 고급 기능과 사용법을 더 자세히 알아보고 싶다면 Scrapy 공식 문서를 참조하고 실제 프로젝트를 기반으로 연습하고 탐색해 보세요. 파충류 세계에서 성공을 기원합니다! 🎜

위 내용은 Scrapy 배우기: 기초부터 고급까지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿