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

Détails de l'installation et de l'utilisation simple du cadre de爬虫Scrapy en Python

Prologue: I have heard the great name of python crawling framework for a long time. In recent days, I have learned about the Scrapy crawling framework and will share my understanding with everyone. If there are any inappropriate expressions, please correct me, great gods.

First, a glimpse of Scrapy

Scrapy is an application framework written to crawl website data and extract structured data. It can be applied in a series of programs including data mining, information processing, or storing historical data.

It was originally designed toPage scraping(more precisely,Web scraping) designed, and can also be applied in obtaining the data returned by the API (for exampleAmazon Associates Web Services) or general web crawlers.

This document will introduce the concepts behind Scrapy to help you understand its working principle and determine whether Scrapy is what you need.

When you are ready to start your project, you can refer toIntroduction

Second, Scrapy installation introduction

Scrapy framework running platform and related auxiliary tools

  1. Python2.7(Python latest version3.5,here we have chosen2.7Version)
  2. Python Package:pipandsetuptools. Now pip depends on setuptools, and if it is not installed, setuptools will be installed automatically.
  3. lxml. La plupart des distributions Linux incluent lxml. Si il manque, veuillez consulterhttp://lxml.de/installation.html
  4. OpenSSL. Les systèmes autres que Windows (veuillez consulter les instructions d'installation de la plate-forme) ont tous fourni.

Vous pouvez utiliser pip pour installer Scrapy (il est recommandé d'utiliser pip pour installer le package Python).

pip install Scrapy

Processus d'installation sous Windows :

1、Installer Python 2.7Après cela, vous devez modifier le variable d'environnement PATH, ajouter l'exécutable de Python et les scripts supplémentaires au chemin système. Ajoutez le chemin suivant au PATH :

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

En plus de cela, vous pouvez utiliser la commande cmd pour configurer le Path :

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

Après la fin de l'installation et de la configuration, vous pouvez exécuter la commande python --version pour vérifier la version de Python installée. (Comme illustré dans l'image)

2、À partir dehttp://sourceforge.net/projects/pywin32/Installerpywin32

Veuillez vous assurer que le téléchargement correspond à la version de votre système (win32ou amd64

à partir dehttps://pip.pypa.io/en/latest/installing.htmlInstaller pip

3、Ouvrez la fenêtre de commande et vérifiez que pip est correctement installé:

pip --version

4、Jusqu'à présent, Python 2.7 et pip fonctionne correctement. Ensuite, installez Scrapy:

pip install Scrapy

Jusqu'ici, l'installation de Scrapy sous Windows est terminée.

Troisième partie: Tuto débutant Scrapy

1、Créer un projet de projet Scrapy dans cmd.

scrapy startproject tutorial

H:\python\scrapyDemo>scrapy startproject tutorial
Nouveau projet Scrapy 'tutorial', utilisant le répertoire de modèle 'f:\\python27\\lib\\site-packages\\scrapy\\templates\\project', créé dans:
  H:\python\scrapyDemo\tutorial
Vous pouvez commencer votre premier spider avec:
  cd tutorial
  scrapy genspider example example.com

2、La structure du répertoire est la suivante :

Analyser la structure du cadre scrapy :

  1. scrapy.cfg: Fichier de configuration du projet.
  2. tutorial/: Module Python du projet. Vous ajouterez le code ici.
  3. tutorial/items.py: Fichier item du projet.
  4. tutorial/pipelines.py: Fichier pipelines du projet.
  5. tutorial/settings.py: Fichier de configuration du projet.
  6. tutorial/spiders/: Dossier où placer le code du spider.

3、Écrire un simple爬虫

1、Dans le fichier item.py, configurez les instances de champs à collecter des pages à collecter.

# -*- coding: utf-8 -*-
# Définissez ici les modèles pour vos éléments collectés
#
# Consultez la documentation dans:
# 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、dans tutorial/spiders/dans le fichier spider.py, écrire les sites à collecter et les champs à collecter individuellement.

# -*-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):
  # Nom du爬虫
  name = "tutorial"
  # Décalage de téléchargement
  download_delay = 1
  # Domains autorisés
  allowed_domains = ["news.cnblogs.com"]
  # URL de départ
  start_urls = [
    "https://news.cnblogs.com"
  ]
  # Règles de爬取, sans callback signifie que l'URL de ce type est parcourue récursivement
  
    /////
    ////+
  
  
  
    
    
    //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"]/span[@class="time"]/text()')[0].extract().decode('
      'utf-8')
    item['releasedate'] = releasedate
    yield item

3、dans tutorial/Les données sont sauvegardées dans pipelines.py

# -*- coding: utf-8 -*-
# Définissez vos pipelines ici
#
# N'oubliez pas d'ajouter votre pipeline à la configuration ITEM_PIPELINES
# Voir : 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')#Les données sont stockées dans 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/Configurer l'environnement d'exécution dans settings.py.

# -*- coding: utf-8 -*-
BOT_NAME = 'tutorial'
SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'
# Désactiver les cookies, pour éviter d'être banni
COOKIES_ENABLED = False
COOKIES_ENABLES = False
# Définir Pipeline, ici implémenter l'écriture de données dans le fichier
ITEM_PIPELINES = {
  'tutorial.pipelines.TutorialPipeline': 300
}
# Définir la profondeur maximale de l'araignée
DEPTH_LIMIT = 100

5、créer un fichier main pour exécuter le code d'araignée.

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

Finalement, après l'exécution de main.py, vous pouvez obtenir les données JSON des résultats de collecte dans le fichier data.json.

Voici la totalité du contenu de cet article, j'espère qu'il vous aidera dans vos études, et que vous soutiendrez également le tutoriel d'alarme.

Déclaration : le contenu de cet article est extrait du réseau, et appartient à l'auteur original. Le contenu est apporté par les utilisateurs d'Internet et téléchargé spontanément. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, vous êtes invité à envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aussi aimer