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