Я считаю, что могу прояснить части вашего исходного вопроса.
С одной стороны, используя встроенные в браузер средства отладки для исследования поведения определенного веб-сайта при загрузке браузером, является хорошей техникой и нелегко заменяется специальным кодом.
С другой стороны, похоже, что вы ищете HTML-парсер, такой как BeautifulSoup.
Кроме того, вы, кажется, путаете смысл URL-адреса и HTML-документа. URL может указывает на документ HTML, но во многих случаях он указывает на другие вещи, такие как конечная точка JSON-API.
Предполагая, что вы на самом деле хотел спросить, как «для ввода URL в HTML-документ и он генерирует список каждого удаленного вызова ресурсов браузер будет выполнять»:
Перед вынесением веб-сайт, веб браузер отключает первоначальный запрос HTTP GET и извлекает основной документ HTML. Он анализирует этот документ и, в частности, ищет дополнительные ресурсы для извлечения. Такими ресурсами могут быть файлы CSS, файлы JavaScript, изображения, iframes, ... (длинный список). Если он найдет такие ресурсы, браузер автоматически отключит один HTTP-запрос GET для каждого из этих ресурсов. Как вы можете видеть, есть довольно много работы и происходит за кулисами, прежде чем все эти запросы выполняются вашим браузером.
В Python вы не можете тривиально моделировать поведение вашего браузера. Вы можете легко получить один документ HTML через модуль urllib
или requests
. То есть вы можете вручную отключить один HTTP-запрос GET для извлечения HTML-документа. Репликация поведение браузера затем потребуется
- для разбора HTML-документ таким же образом, браузер делает,
- искать документ для удаленных источников, таких как изображения, CSS файлов, ....,
- , чтобы решить, какие удаленные ресурсы для запроса, в каком порядке, и
- затем выстрелить еще более HTTP GET запросов, и, возможно, рекурсивно повторить весь процесс (как требовалось бы для фреймов)
Точная репликация поведения браузера слишком сложна. Построение надлежащего веб-браузера является неотъемлемой трудной задачей.
То есть, если вы хотите понять поведение веб-сайта в браузере, используйте инструменты отладки браузера.
Благодарим за ответ. Это объясняет мне многое, что я не знал.Причина, по которой я задал этот вопрос, в первую очередь заключается в том, что я пытаюсь выяснить способ загрузки общедоступных видеороликов facebook с помощью python. И способ, которым я объяснял, - это единственный способ, которым я знаю, как это сделать вручную, и я как бы надеялся автоматизировать его. Я не уверен, что вы знаете лучший способ? Мне не нужно делать это для одного видео кстати, я бы использовал сервис. Я делаю это, поэтому я могу использовать python для его загрузки. – Johnny
@ Джонни, действительно, то, что вы хотите, достижимо и обычно подпадает под термин «веб-скребок». Вы должны научиться анализировать HTML-документ с помощью BeautifulSoup (связанный в ответе). Тогда вы, возможно, сможете извлекать URL-адреса для видео, а затем загружать их. Это будет сложно, если задействован Flash-видеоплеер, потому что URL-адрес обычно скрыт или видео доступно только в потоковом формате. В последнем случае доступны другие технологии для автоматического получения видеоданных. Google - ваш друг :-). –
Нашел, просто использовал Facebook GraphAPI, и он сработал. Просто нужно было использовать источник haha http://stackoverflow.com/questions/8642579/how-can-i-download-a-video-from-facebook-using-graphapi – Johnny