Python + Scrapy + JSON + XPath: Как очистить данные JSON с помощью Scrapy - PullRequest
0 голосов
/ 12 октября 2018

Я знаю, как получить XPATH для точек данных HTML с помощью Scrapy.Но я должен очистить все URL (начальные URL) этой страницы на этом сайте, которые написаны в формате JSON:

https://highape.com/bangalore/all-events

view-source: https://highape.com/bangalore/all-events

Я обычно пишу это в следующем формате:

def parse(self, response):
      events = response.xpath('**What To Write Here?**').extract()

      for event in events:
          absolute_url = response.urljoin(event)
          yield Request(absolute_url, callback = self.parse_event)

Пожалуйста, скажите мне, что я должен написать в «Что написать здесь?»часть.

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Что здесь написать?

events = response.xpath("//script[@type='application/ld+json']").extract()
events = json.loads(events[0])
0 голосов
/ 12 октября 2018

Просмотрите исходный URL-адрес страницы, затем скопируйте строку 76 - 9045 и сохраните как data.json на локальном диске, затем используйте этот код ...

import json
from bs4 import BeautifulSoup
import requests
req = requests.get('https://highape.com/bangalore/all-events')
soup = BeautifulSoup(req.content, 'html.parser')
js = soup.find_all('script')[5].text
data = json.loads(js, strict=False)
for i in data:
    url = i['url']
    print(url)
    ##callback with scrapy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...