Scrapy, skrobanie danych wewnątrz Javascript
ja używamscrapy
do zeskanowania danych ze strony internetowej. Jednak dane, których potrzebowałem, nie znajdowały się w samym html, zamiast tego pochodziły z javascript. Moje pytanie brzmi:
Jak uzyskać wartości (wartości tekstowe) takich przypadków?
To jest strona, którą próbuję zeskanować:https://www.mcdonalds.com.sg/locate-us/
Atrybuty, które próbuję uzyskać: Adres, Kontakt, Godziny pracy.
Jeśli wykonasz „kliknięcie prawym przyciskiem myszy”, „zobacz źródło” w przeglądarce Chrome, zobaczysz, że takie wartości nie są dostępne w HTML.
Edytować
Sry paul, zrobiłem to, co mi kazałeś, znalazłemadmin-ajax.php
i zobaczyłem ciało, ale teraz naprawdę utknąłem.
Jak odzyskać wartości z obiektu json i zapisać je we własnym polu zmiennych? Byłoby dobrze, gdybyś mógł podzielić się tym, jak zrobić tylko jeden atrybut dla publiczności i dla tych, którzy dopiero zaczęli skrobać.
Oto mój kod do tej pory
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 dla długich edycji, więc w skrócie, jak mogę zapisać wartość json w moim atrybucie? na przykład
*** item ['address'] = * jak odzyskać ****
P.S, nie jestem pewien, czy to pomaga, ale uruchamiam te skrypty za pomocą linii cmd
indeksowanie 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 pytanie o to, będzie całkowicie w porządku, nawet jeśli nie masz na to czasu.