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