Выпадающее меню выбора парсинга веб-страницы Python

Я пытаюсь очистить эту веб-страницу: http://animeheaven.eu/watch.php?a=My%20Hero%20Academia%203&e=2 и загрузить видео. Как видите, загружается видео с разрешением 720p. Я могу скачать видео отсюда. Но я не знаю, как получить другую версию видео, то есть версию 480p, из раскрывающегося меню. Как выбрать ссылку 480p?

покажите, что вы сделали в этой проблеме до сих пор?

Rachit kapadia 14.04.2018 18:11

Что ж, я тоже не очень доволен частью загрузки, но это сделало мою работу. Я заметил, что функция javascript никогда не изменяет только переменные, поэтому я жестко запрограммировал функцию на python и каждый раз получал переменную, в основном, вместо рендеринга js я написал эквивалент python, который выводит ссылку для загрузки, потому что рендеринг js был довольно медленным

Eular 14.04.2018 18:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
1 224
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы сделаете POST-запрос с параметром «rs» = «1», вы получите нужные данные.

from bs4 import BeautifulSoup
import requests

link = "http://animeheaven.eu/watch.php?a=My%20Hero%20Academia%203&e=2"
html= requests.post(link, data = {'rs': '1'})
soup= BeautifulSoup(html.content,"lxml")

scripts= soup.findAll("script")
sc=scripts[4]
print (sc)
...

Выходы:

...
document.write("<a  class='an' href='"+ pli +"'><div class='dl2'>Download  159 MB</div></a>");
...

Нет:

...
document.write("<a  class='an' href='"+ pli +"'><div class='dl2'>Download  255 MB</div></a>");
...

ОБНОВЛЕНО в ответ на комментарий:

...
select = soup.find("select", {'name': 'rs'})
for option in select.find_all('option'):
    print ("{} = {}".format(option.text, option['value']))

Выходы

720p = 0
480p = 1

поэтому rs даст разрешение, а sr предоставит сервер. Есть ли способ узнать доступные номера для rs, я имею в виду 0, 1 или 2 и т. д.?

Eular 15.04.2018 15:04

В FireFox или Chrome используйте inspect, посмотрите вкладку сети и отправьте формы, затем посмотрите отправленные данные, это подскажет вам соответствующее значение, которое вам нужно использовать.

Dan-Dev 15.04.2018 15:13

Я имел в виду в коде, не открывая браузер. например Я также вижу доступное разрешение из источника страницы, поэтому я подумал, что могу получить источник страницы, прочитать доступные разрешения, а затем снова отправить запрос с соответствующими данными rs.

Eular 15.04.2018 15:41

Я добавил код, чтобы сделать это в качестве обновления своего ответа.

Dan-Dev 15.04.2018 17:34

Другие вопросы по теме