English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Instalação e uso básico do framework de rastreamento Scrapy do Python

Anotação: Já tinha ouvido o nome da grande框架 de rastreamento de python. Nos últimos dias, aprendi o framework de rastreamento Scrapy, e compartilho minhas compreensões com todos. Espero que os grandes sábios corrijam o que for inadequado.

I. Primeira olhada no Scrapy

Scrapy é uma aplicação de framework escrita para rastrear dados do site, extrair dados estruturados. Pode ser aplicado em uma série de programas, incluindo mineração de dados, processamento de informações ou armazenamento de dados históricos.

Seu objetivo inicial eraRastreamento de página( mais exatamente,Rastreamento de rede) projetado, também pode ser aplicado na obtenção de dados retornados pela API (por exemploAmazon Associates Web Services) ou um rastreador de rede genérico.

Este documento introduzirá os conceitos por trás do Scrapy para que você entenda como ele funciona e determine se o Scrapy é o que você precisa.

Quando você estiver pronto para começar seu projeto, você pode referir-se aTutorial de introdução

II. Introdução à instalação do Scrapy

Plataforma de execução do framework Scrapy e ferramentas auxiliares relacionadas

  1. Python2.7(Python versão mais recente3.5Aqui foi escolhido2.7Versão)
  2. Python Package:pipandsetuptools. Agora pip depende de setuptools, se não estiver instalado, ele instalará automaticamente setuptools.
  3. lxml. A maioria das distribuições Linux já vem com o lxml. Se estiver faltando, consultehttp://lxml.de/installation.html
  4. OpenSSL. Todos os sistemas, exceto Windows (ver guia de instalação da plataforma), já fornecem.

Você pode usar o pip para instalar o Scrapy (recomendado usar pip para instalar pacotes Python).

pip install Scrapy

Fluxo de instalação no Windows:

1、Instale o Python 2.7Depois disso, você precisa modificar a variável de ambiente PATH, adicionando o executável do Python e scripts adicionais ao caminho do sistema. Adicione o seguinte caminho ao PATH:

C:\Python27\;C:\Python27\Scripts\;

Além disso, você pode usar o comando cmd para configurar o Path:

c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py

Depois de completar a instalação e configuração, você pode executar o comando python --version para verificar a versão do Python instalado. (Como mostrado na figura)

2、A partir dehttp://sourceforge.net/projects/pywin32/instalaçãopywin32

Por favor, confirme que o download está em conformidade com a versão do seu sistema (win32ou amd64

a partir dehttps://pip.pypa.io/en/latest/installing.htmlInstale o pip

3、Abra a janela de linha de comando e verifique se o pip foi instalado corretamente:

pip --versão

4、Até agora, o Python 2.7 e o pip já podem ser executados corretamente. Em seguida, instale o Scrapy:

pip install Scrapy

Até aqui, a instalação do Scrapy no Windows já foi concluída.

Capítulo 3: Introdução ao Scrapy

1、Crie o projeto de engenharia Scrapy no cmd.

scrapy startproject tutorial

H:\python\scrapyDemo>scrapy startproject tutorial
Novo projeto Scrapy 'tutorial', usando diretório de template 'f:\\python27\\lib\\site-packages\\scrapy\\templates\\project', criado em:
  H:\python\scrapyDemo\tutorial
Você pode começar seu primeiro spider com:
  cd tutorial
  scrapy genspider exemplo exemplo.com

2、A estrutura do diretório é a seguinte:

Analisar a estrutura do framework scrapy:

  1. scrapy.cfg: Arquivo de configuração do projeto.
  2. tutorial/: Módulo python do projeto. Aqui você adicionará o código.
  3. tutorial/items.py: Arquivo de item do projeto.
  4. tutorial/pipelines.py: Arquivo de pipelines do projeto.
  5. tutorial/settings.py: Arquivo de configuração do projeto.
  6. tutorial/spiders/: Diretório onde o código do escaravelho é colocado.

3、Escrever um escaravelho simples

1、No arquivo item.py configurar os campos a serem capturados nas páginas.

# -*- coding: utf-8 -*-
# Defina aqui os modelos para seus itens capturados
#
# Veja a documentação em:
# http://doc.scrapy.org/en/latest/topics/items.html
import scrapy
from scrapy.item import Item, Field
class TutorialItem(Item):
  title = Field()
  author = Field()
  releasedate = Field()

2、no tutorial/spiders/no arquivo spider.py escrever o site a ser capturado e os campos a serem capturados.

# -*-coding:utf-8-*-
import sys
from scrapy.linkextractors.sgml import SgmlLinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from tutorial.items import TutorialItem
reload(sys)
sys.setdefaultencoding("utf-8)
class ListSpider(CrawlSpider):
  # Nome do escaravelho
  name = "tutorial"
  # Definir atraso de download
  download_delay = 1
  # Domínios permitidos
  allowed_domains = ["news.cnblogs.com"]
  # URL inicial
  start_urls = [
    "https://news.cnblogs.com"
  ]
  # Regra de captura, sem callback indica captura recursiva para urls do tipo
  rules = (
    ////page/
    ////+
  
  
  
    
    
    //div[@id="news_title"]-8')
    item['title'] = title
    author = response.selector.xpath('//div[@id="news_info"]/span/a/text()')[0].extract().decode('utf-8')
    item['author'] = author
    releasedate = response.selector.xpath('//div[@id="news_info"]//text()')[0].extract().decode(
      'utf-8')
    item['releasedate'] = releasedate
    yield item

3、no tutorial/Os dados são salvos no arquivo pipelines.py.

# -*- coding: utf-8 -*-
# Defina seus pipelines aqui
#
# Não se esqueça de adicionar sua pipeline na configuração ITEM_PIPELINES
# Veja: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
import json
import codecs
class TutorialPipeline(object):
  def __init__(self):
    self.file = codecs.open('data.json', mode='wb', encoding='utf-8')#O dados são armazenados em data.json
  def process_item(self, item, spider):
    line = json.dumps(dict(item)) + "\n"
    self.file.write(line.decode("unicode_escape"))
    return item

4、tutorial/Configurações de ambiente no settings.py.

# -*- coding: utf-8 -*-
BOT_NAME = 'tutorial'
SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'
# Desativa cookies, para evitar ser banido
COOKIES_ENABLED = False
COOKIES_ENABLES = False
# Define Pipeline, aqui é implementado o escrita de dados em arquivo
ITEM_PIPELINES = {
  'tutorial.pipelines.TutorialPipeline': 300
}
# Define a profundidade máxima que o rastreador pode percorrer
DEPTH_LIMIT = 100

5、criar um arquivo main para executar o código de rastreamento.

from scrapy import cmdline
cmdline.execute("scrapy crawl tutorial".split())

Finalmente, após a execução de main.py, os dados JSON coletados são obtidos no arquivo data.json.

Isso é tudo o que há no artigo. Esperamos que ajude no seu aprendizado e que você apoie o tutorial de clamor.

Declaração: o conteúdo deste artigo é extraído da internet, pertencente ao respectivo proprietário. O conteúdo é contribuído e carregado voluntariamente pelos usuários da internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas. Em caso de verificação, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais.)

Você também pode gostar