Używam scrapy
do przeglądania danych o skrobaniu ze strony internetowej. Jednak dane, których szukałem, nie znajdowały się w samym html, ale pochodzą z javascriptu. Moje pytanie brzmi:Złomowanie, złomowanie danych w skrypcie Javascript
Jak uzyskać wartości (wartości tekstowe) takich przypadków?
To jest strona Próbuję zeskrobać ekranu: https://www.mcdonalds.com.sg/locate-us/
Atrybuty Próbuję dostać: godziny adres, dane kontaktowe, operacyjne.
Jeśli wykonasz "kliknięcie prawym przyciskiem", "wyświetl źródło" w przeglądarce Chrome, zobaczysz, że takie wartości nie są dostępne w kodzie HTML.
Edit
Sry Paul, zrobiłem to, co mi powiedziano, znalazł admin-ajax.php
i zobaczył ciało, ale ja naprawdę tkwi teraz.
Jak pobrać wartości z obiektu Json i zapisać je w osobnym polu zmiennym? Byłoby dobrze, gdybyś mógł podzielić się tym, jak zrobić tylko jeden atrybut dla publiczności i dla tych, którzy właśnie rozpoczęli scrapy.
Oto mój kod tak daleko
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 długotrwały edycji, więc w skrócie, jak mogę zapisać wartość json do mojego atrybutu? Np
*** pozycja [ 'adres'] = * Jak odzyskać ****
PS, nie wiem, czy to pomoże, ale ja uruchomić te skrypty na linii cmd przy użyciu
scrapy crawl mcdonalds -o McDonalds.json -t json (aby zapisać wszystkie moje dane w pliku json)
Nie mogę wystarczająco podkreślić, jak bardzo jestem wdzięczny. Wiem, że to nierozsądne, aby zapytać o to, będzie całkowicie w porządku, nawet jeśli nie masz na to czasu.
Thx za pomoc Rho to informacja i zadziałało! * Dla tych, którzy mają ten sam problem co ja, sprawdź ten wpis * – HeadAboutToExplode