2016-11-10 7 views
0

Я хотел бы, чтобы иметь возможность играть в веб-камера видеоответ на просмотр видео, но ответ JSon от Weather Underground для «camurl», как так:Как получить URL-адрес видеофайла веб-камеры из метеорологического ответа в Android с помощью JSOUP?

http://www.wunderground.com/webcams/cadot1/902/show.html

URL-адрес для видео мне нужно играть встраивается в HTML код с URL следующим образом:

https://www.wunderground.com/webcams/cadot1/1216/video.html?month=11&year=2016&filename=current.mp4

Есть ли способ получить этот URL-адрес от ответа json «camurl»? Я слышал об этом термине «html scraping», возможно ли получить встроенный видеоролик с html-страницы json response?

Это то, что полный ответ JSON выглядит для веб-камеры:

{ 
    "handle": "mahouser", 
    "camid": "mahouserCAM1", 
    "camindex": "1", 
    "assoc_station_id": "KCACAMAR18", 
    "link": "http://", 
    "linktext": "Michael Houser", 
    "cameratype": "Foscam FI9900P", 
    "organization": "", 
    "neighborhood": "Camarillo Hills", 
    "zip": "93010-12", 
    "city": "CAMARILLO", 
    "state": "CA", 
    "country": "US", 
    "tzname": "America/Los_Angeles", 
    "lat": "34.24947357", 
    "lon": "-119.03993988", 
    "updated": "2016-11-10 20:57:24", 
    "updated_epoch": "", 
    "downloaded": "2016-11-08 20:38:48", 
    "isrecent": "1", 
    "CURRENTIMAGEURL": "http://icons.wunderground.com/webcamramdisk/m/a/mahouser/1/current.jpg?t=1478812080", 
    "WIDGETCURRENTIMAGEURL": "http://icons.wunderground.com/webcamramdisk/m/a/mahouser/1/widget.jpg?t=1478812080", 
    "CAMURL": "http://www.wunderground.com/webcams/mahouser/1/show.html" 
} 

Я посмотрел на jsoup и читать документацию, но не могу понять, как получить нужный URL. Вот как выглядит URL в HTML:

<td class="day"> 
    <div class="row"> 
    <div class="small-2 medium-5 columns"> 
    <a href="/history/airport/KAJO/2016/11/15/DailyHistory.html" class="day-num"> 
    15 
    </a> 
    </div> 
    <div class="small-10 medium-7 columns"> 
    <img src="//icons.wxug.com/i/c/v4/clear.svg" alt="Clear" class="right" /> 
    </div> 
    </div> 
    <div class="calThumb"> 
    <a href="http://icons.wunderground.com/webcamramdisk/c/a/cadot1/902/current.jpg?1479239986" rel="lightbox[webcam]" title=""> 
    <img src="http://icons.wunderground.com/webcamramdisk/c/a/cadot1/902/current-thumb.jpg?1479239986" width="100" height="75" alt="" title="Click to view the time-lapse video for this day." /> 
    </a> 
    </div> 
    <p><a href="video.html?month=11&year=2016&filename=current.mp4" class="videoText">View Video</a></p> 
    </td> 

Как я могу получить, что «current.mp4» URL внутри HTML-код?

+0

Да, это возможно с помощью HTML-скребок. – BlackHatSamurai

+0

Здесь нет кода JSoup. Пожалуйста, добавьте свои попытки. –

ответ

1

Есть много возможных путей, но вот простое решение:

  1. Retrieve the html code with jsoup:

    Document doc = Jsoup.connect("http://www.wunderground.com/webcams/cadot1/902/show.html").get(); 
    
  2. Затем извлечь все элементы с классом Videotext:

    Elements elements = doc.getElementsByClass("videoText"); 
    

    Это w плохо дать вам список записей. Теперь просто выберите ту, которая заканчивается current.mp4.

  3. Чтобы получить current.mp4 URL:

    for (Element link : elements) { 
        String linkHref = link.attr("href"); 
        // linkHref contains something like video.html?month=11&year=2016&filename=current.mp4 
        // TODO check if linkHref ends with current.mp4 
    } 
    
+0

Это работает, чтобы получить все элементы «videoText» из одного html-файла, но как насчет того, когда есть массив html-ссылок, которые нужно очистить для определенных ссылок на файлы? то есть current.mp4. Удастся ли JSOUP быстро получить необходимые ссылки на файл mp4 из каждой ссылки html, возвращенной массивом json? –

+0

Вы ответили на мой вопрос выше, так что спасибо. Я отмечу это как ответ, хотя в результате этого ответа я столкнулся с другой проблемой. Я должен был обратить внимание. Получающийся в результате видео-url из этого метода - это просто URL-адрес. Я предположил, что получаю ссылку на видео, чтобы я мог передать его в приложение. –

 Смежные вопросы

  • Нет связанных вопросов^_^