Я использую scrapy
, чтобы очистить данные с веб-сайта. Однако данные, которые я хотел, были не внутри самого html, а из javascript. Итак, мой вопрос:
Как получить значения (текстовые значения) таких случаев?
Это сайт, который я пытаюсь экранировать: https://www.mcdonalds.com.sg/locate-us/
Атрибуты, которые я пытаюсь получить: Адрес, контакт, часы работы.
Если вы сделаете "правый щелчок", "просмотрите исходный код" внутри браузера Chrome, вы увидите, что такие значения недоступны сами по себе в HTML.
Изменить
Sry paul, я сделал то, что вы мне сказали, нашел admin-ajax.php
и увидел тело, но я действительно застрял сейчас.
Как получить значения из объекта json и сохранить его в поле переменной? Было бы хорошо, если бы вы могли поделиться тем, как сделать только один атрибут для публики, а также для тех, кто только начал очищать.
Здесь мой код пока
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 для длинного редактирования, так, короче говоря, как я могу сохранить значение json в свой атрибут? например,
*** item ['address'] = * как получить ****
P.S, не уверен, что это помогает, но я запускаю эти скрипты в строке cmd с помощью
scrapy crawl mcdonalds -o McDonalds.json -t json (чтобы сохранить все мои данные в json файле)
Я не могу достаточно подчеркнуть, насколько я благодарен. Я знаю, что это неразумно спросить об этом у, полностью будет в порядке, даже если у вас нет времени для этого.