English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Anmerkung: Es war lange bekannt, dass der Python-Spider-Framework-Bekanntheit hat. In den letzten Tagen habe ich die Scrapy-Spider-Framework gelernt und werde mein Verständnis mit ihnen teilen. Falls es Unrichtigkeiten gibt, bitte die Grossmeister korrigieren.
Einsicht in Scrapy
Scrapy ist ein Anwendungsframework, das zur Extraktion strukturierten Daten von Website-Daten entwickelt wurde. Es kann in einer Reihe von Programmen angewendet werden, die Datenminen, Informationsverarbeitung oder die Speicherung historischer Daten umfassen.
war ursprünglich dafürSeiten-Spider(genauer gesagt,Netzwerk-Spider) entwickelt, kann aber auch zur Erreichung der von der API zurückgegebenen Daten (z.B.Amazon Associates Web Services) oder allgemeine Web-Spider.
Dieser Dokumentation wird durch die Vorstellung der Konzepte hinter Scrapy helfen, Sie über seine Funktionsweise zu informieren und bestimmen, ob Scrapy das ist, was Sie benötigen.
Wenn Sie bereit sind, Ihr Projekt zu beginnen, können SieEinführung。
Zwei, Scrapy-Installationserklärung
Scrapy-Framework-Plattform und zugehörige Hilfsinstrumente
Sie können Scrapy mit pip installieren (empfohlen: pip wird zum Installieren von Python-Paketen verwendet).
pip install Scrapy
Installationsprozess unter Windows:
1、Installieren Sie Python 2.7Nachdem Sie dies getan haben, müssen Sie das PATH-Umgebungsvariable bearbeiten, um die ausführbaren Programme und zusätzlichen Skripte von Python in den Systempfad hinzuzufügen. Fügen Sie folgende Pfade zum PATH hinzu:
C:\Python27\;C:\Python27\Scripts\;
Außerdem können Sie den cmd-Befehl verwenden, um den Path zu setzen:
c:\python27\python.exe c:\python27\tools\scripts\win_add2path.py
Nachdem die Installation und Konfiguration abgeschlossen sind, können Sie den Befehl python --Version überprüfen Sie die installierte Python-Version (wie im Bild gezeigt).
2、Vonhttp://sourceforge.net/projects/pywin32/Installierenpywin32
Stellen Sie sicher, dass die heruntergeladene Version Ihrer Systemkompatibilität entspricht (win32oder amd64
Vonhttps://pip.pypa.io/en/latest/installing.htmlInstallieren Sie pip
3、Öffnen Sie das Kommandozeilenfenster und stellen Sie sicher, dass pip korrekt installiert ist:
pip --Version
4、Bis jetzt 2.7 und pip läuft bereits korrekt. Als nächstes installieren Sie Scrapy:
pip install Scrapy
Bis jetzt ist die Installation von Scrapy unter Windows abgeschlossen.
Drei, Einleitung in Scrapy
1、Ein Scrapy-Projekt im cmd erstellen.
scrapy startproject tutorial
H:\python\scrapyDemo>scrapy startproject tutorial Neues Scrapy-Projekt 'tutorial', das das Template-Verzeichnis 'f:\\python27\\lib\\site-packages\\scrapy\\templates\\project', erstellt in: H:\python\scrapyDemo\tutorial Sie können Ihren ersten Spider mit dem folgenden Befehl starten: cd tutorial scrapy genspider example example.com
2、The file directory structure is as follows:
。
Parse the structure of the scrapy framework:
3、Write a simple crawler
1、In item.py, configure the field instances of the pages to be collected.
# -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # 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、im tutorial/spiders/spider.py writes the website to be collected and the fields to be collected separately.
# -*-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): # Spider name name = "tutorial" # Set download delay download_delay = 1 # Allowed domains allowed_domains = ["news.cnblogs.com"] # Starting URL start_urls = [ "https://news.cnblogs.com" ] # Crawl rules, without callback indicates recursive crawling to this class URL 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、im tutorial/Daten werden in pipelines.py gespeichert.
# -*- coding: utf-8 -*- # Definieren Sie Ihre Item-Pipelines hier # # Vergessen Sie nicht, Ihre Pipeline in die Einstellungen von ITEM_PIPELINES hinzuzufügen # Siehe: 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')# Daten speichern in 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/Konfigurieren Sie die Ausführungsumgebung in settings.py.
# -*- coding: utf-8 -*- BOT_NAME = 'tutorial' SPIDER_MODULES = ['tutorial.spiders'] NEWSPIDER_MODULE = 'tutorial.spiders' # Cookies deaktivieren, um ein Ban zu verhindern COOKIES_ENABLED = False COOKIES_ENABLES = False # Setzen Sie Pipeline, hier wird die Datenwrite-Implementierung durchgeführt ITEM_PIPELINES = { 'tutorial.pipelines.TutorialPipeline': 300 } # Setzen Sie das maximale Eintauchtiefenlimit des Crawler DEPTH_LIMIT = 100
5、Erstellen Sie eine Datei main, um den Crawler-Code auszuführen.
from scrapy import cmdline cmdline.execute("scrapy crawl tutorial".split())
Schließlich werden nach der Ausführung von main.py die JSON-Daten der gesammelten Ergebnisse im data.json-Datei abgerufen.
Das ist der gesamte Inhalt dieses Artikels. Wir hoffen, dass er Ihnen bei Ihrem Lernen hilft und dass Sie die呐喊教程 unterstützen.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet entnommen und gehört dem Urheber. Der Inhalt wurde von Internetnutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte finden, die möglicherweise urheberrechtlich geschützt sind, freuen wir uns über eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @ beim Senden von E-Mails und geben Sie relevante Beweise an. Sobald nachgewiesen wird, dass Inhalte urheberrechtlich geschützt sind, wird diese Website die fraglichen Inhalte sofort löschen.)