Sto usando scrapy
per analizzare i dati di raschiatura da un sito web. Tuttavia, i dati che volevo non si trovavano all'interno dello stesso codice HTML, ma da un javascript. Quindi, la mia domanda è:Scrapy, rottamazione dei dati all'interno di un Javascript
Come ottenere i valori (valori di testo) di tali casi?
Questo, è il sito che sto cercando di raschiare schermo: https://www.mcdonalds.com.sg/locate-us/
Attributi Sto cercando di ottenere: ore Indirizzo, contatto, di funzionamento.
Se si fa un "clic destro", "visualizza sorgente" all'interno di un browser Chrome, si vedrà che tali valori non sono disponibili nel codice HTML.
Modifica
Sry Paolo, ho fatto quello che mi hai detto a, trovato il admin-ajax.php
e ha visto il corpo, ma, sto veramente bloccato ora.
Come recuperare i valori dall'oggetto json e memorizzarli in un campo variabile di mia proprietà? Sarebbe bello, se potessi condividere come fare un solo attributo per il pubblico e anche per quelli che hanno appena iniziato a scricchiolare.
Ecco il mio codice finora
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 a lungo modificare, così in breve, come faccio a memorizzare il valore JSON nel mio attributo? per esempio
*** voce [ 'indirizzo'] = * come recuperare ****
PS, non so se questo aiuta, ma, ho eseguito questi script sulla linea di cmd utilizzando
mcdonalds -o McDonalds.json -t json (per salvare tutti i miei dati in un file json)
Non riesco a sottolineare abbastanza quanto mi sento grato. So che è irragionevole chiedertelo, sarà assolutamente d'accordo anche se non hai tempo per questo.
Thx per l'aiuto Rho è informativo e ha funzionato! * Per chi ha lo stesso problema con me, controlla questo post * – HeadAboutToExplode