Ich verwende scrapy
, um Daten von einer Website scrape screenen. Allerdings waren die Daten, die ich wollte, nicht im HTML selbst enthalten, sondern von einem Javascript. Also, meine Frage ist:Scrapy, Verschrottung von Daten in einem Javascript
Wie erhalten Sie die Werte (Textwerte) solcher Fälle?
Dies ist die Seite, die ich zu Screen Scrape bin versucht: https://www.mcdonalds.com.sg/locate-us/
Attribute Ich versuche zu bekommen: Adresse, Kontakt, Betriebsstunden.
Wenn Sie einen "Rechtsklick", "Quelltext anzeigen" in einem Chrom-Browser ausführen, werden Sie sehen, dass solche Werte nicht im HTML selbst verfügbar sind.
bearbeiten
Sry paul, tat ich, was du mir gesagt hast gefunden, die admin-ajax.php
und sah den Körper, aber ich bin jetzt wirklich stecken.
Wie kann ich die Werte aus dem JSON-Objekt abrufen und in einem eigenen Variablenfeld speichern? Es wäre gut, wenn Sie teilen könnten, wie man nur ein Attribut für die Öffentlichkeit und für diejenigen, die gerade erst begonnen haben, zu scrapieren. so weit
Items.py
class McDonaldsItem(Item):
name = Field()
address = Field()
postal = Field()
hours = Field()
McDonalds.py
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
import re
from fastfood.items import McDonaldsItem
class McDonaldSpider(BaseSpider):
name = "mcdonalds"
allowed_domains = ["mcdonalds.com.sg"]
start_urls = ["https://www.mcdonalds.com.sg/locate-us/"]
def parse_json(self, response):
js = json.loads(response.body)
pprint.pprint(js)
Sry für lange bearbeiten
meinen Code Hier ist, so kurz, wie kann ich speichern der JSON-Wert in mein Attribut? für zB
*** item [ 'Adresse'] = * wie abrufen ****
PS, nicht sicher, ob dies hilft aber, ich laufe diese Skripte auf der cmd Linie
mit scrapy crawl mcdonalds -o McDonalds.json -t json (um alle meine Daten in eine JSON-Datei zu speichern)
Ich kann nicht genug betonen, wie dankbar ich mich fühle. Ich weiß, es ist etwas unvernünftig, das von dir zu verlangen, es wird völlig in Ordnung sein, auch wenn du keine Zeit dafür hast.
Danke für die Hilfe Rho es ist informativ und es hat funktioniert! * Für diejenigen, die das gleiche Problem haben wie ich, überprüfe diesen Post * – HeadAboutToExplode