Scrapy, raspando dados dentro de um Javascript
estou usandoscrapy
para rastrear dados de recorte de um site. No entanto, os dados que eu queria não estavam dentro do próprio html, mas sim de um javascript. Então, minha pergunta é:
Como obter os valores (valores de texto) de tais casos?
Este é o site que estou tentando rastrear:https://www.mcdonalds.com.sg/locate-us/
Atributos que estou tentando obter: endereço, contato, horário de funcionamento.
Se você clicar com o botão direito do mouse, visualizar a fonte em um navegador Chrome, verá que esses valores não estão disponíveis no HTML.
Editar
Sry Paul, eu fiz o que você me disse para encontrar oadmin-ajax.php
e vi o corpo, mas estou realmente preso agora.
Como faço para recuperar os valores do objeto json e armazená-lo em um campo variável de minha autoria? Seria bom se você pudesse compartilhar como fazer apenas um atributo para o público e para aqueles que acabaram de começar também.
Aqui está meu código até agora
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 para edição longa, então, resumindo, como eu armazeno o valor do json no meu atributo? por exemplo
*** item ['endereço'] = * como recuperar ****
P.S, não tenho certeza se isso ajuda, mas, eu executo esses scripts na linha cmd usando
scrapy crawl mcdonalds -o McDonalds.json -t json (para salvar todos os meus dados em um arquivo json)
Eu não posso enfatizar o suficiente em como eu me sinto grato. Eu sei que é meio razoável perguntar isso, você ficará totalmente bem, mesmo que você não tenha tempo para isso.