#json #xpath #scrapy #handle
Вопрос:
Я пытаюсь получить данные с помощью scrapy с веб-сайта, используя следующую команду:
jsondata = response.xpath('//script[@type="application/ld json"]/text()').extract_first()
microdata = json.loads(jsondata)
author = microdata["author"]["name"]
editor = microdata["editor"]["name"]
daten = microdata["datePublished"]
но это даст мне ошибку, если часть json «//скрипт[@type=»приложение/ld json»]/текст()» не найден на веб-сайте.
Спасибо за любую помощь
Комментарии:
1. Можете ли вы добавить URL-адрес, чтобы я мог его проверить?
2. @Суперпользователь, этот пример URL-адреса с json antaranews.com/berita/2320530/… и этот пример URL-адреса без json: antaranews.com/foto/2320526/. … Спасибо
Ответ №1:
import scrapy
import json
class RefSpider(scrapy.Spider):
name = "refspider"
start_urls = ['https://www.antaranews.com/berita/2320530/gempa-di-padang-lawas-utara-dipicu-oleh-aktivitas-sesar-sumatera',
'https://www.antaranews.com/foto/2320526/penjualan-pernak-pernik-hiasan-kemerdekaan']
def parse(self, response):
jsondata = response.xpath('//script[@type="application/ld json"]/text()').extract_first()
if jsondata is not None:
microdata = json.loads(jsondata)
author = microdata["author"]["name"]
editor = microdata["editor"]["name"]
daten = microdata["datePublished"]
Комментарии:
1. спасибо @Суперпользователь, это работает, очень полезно