Webscraping с помощью scrapy: пустые результаты - PullRequest
1 голос
/ 05 марта 2020

Я изучаю, как использовать Scrappy, я хотел бы извлечь некоторые ссылки на видео YouTube с этого веб-сайта . Я написал этот скрипт для извлечения ссылок с сайта в файл json.

import scrapy
class getVideos(scrapy.Spider):
    name = 'wbScraper'
    start_urls = ['https://research.google.com/audioset///eval/baby_cry_infant_cry.html']

    def parse(self, response):
        for url in response.xpath("//div[@class='thumbnail_container']"): 
            yield {
                    'video_url': url.xpath(".//div[@class='u']").extract_first()

Я просто получил пустой ответ (как показано на рисунке ниже). Я пробовал на другом сайте, и он работал очень хорошо, это второй результат. Результаты

Не могли бы вы помочь мне с этой проблемой? Xpath кажется правильным ...

1 Ответ

0 голосов
/ 06 марта 2020

Видео не в html исходного запроса. Скорее, после загрузки первой страницы делается второй запрос, который отображает видео.

Хорошая новость заключается в том, что URL-адрес видео легко найти, а результат в простом формате. Файл содержит идентификатор видео YouTube и теги видео.

https://storage.googleapis.com/audioset_website_data/youtube_corpus/v1/eval/baby_cry_infant_cry/1.js

А вот пример файла с этого URL.

["2TV2DW0bzBg", 0.0, 8.0, [["Baby cry, infant cry", "baby_cry_infant_cry"]]], 
["2eWobSpugTw", 17.0, 27.0, [["Baby cry, infant cry", "baby_cry_infant_cry"]]], 
["2fKgYlCx_As", 26.0, 36.0, [["Crying, sobbing", "crying_sobbing"], ["Speech", "speech"], ["Baby cry, infant cry", "baby_cry_infant_cry"]]], 
["3KwulXmBX-8", 30.0, 40.0, [["Baby cry, infant cry", "baby_cry_infant_cry"]]], 
["4KxLSx-EhHI", 0.0, 9.0, [["Speech", "speech"], ["Baby cry, infant cry", "baby_cry_infant_cry"]]], 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...