Очистка URL-адресов динамически меняющихся изображений с веб-сайта - PullRequest
2 голосов
/ 11 апреля 2020

Я создаю python программу, которая собирает изображения с этого сайта от Google

enter image description here

Изображения на веб-сайт меняется через определенное количество секунд, а URL-адрес изображения также меняется со временем. Это изменение обрабатывается скриптом на сайте. Я понятия не имею, как получить ссылки на изображения из него.

Я пытался использовать BeautifulSoup и библиотеку requests, чтобы получить ссылки на изображения из html кода сайта:

import requests
from bs4 import BeautifulSoup

url = 'https://clients3.google.com/cast/chromecast/home'
html = requests.get(url).text
soup = BeautifulSoup(html, 'html.parser')
tags = soup('img')
for tag in tags:
    print(tag)

Но код возвращает:

{{background_url}}' in the image src ("ng-src")

Например:

<img class="S9aygc-AHe6Kc" id="picture-background" image-error-handler="" image-index="0" ng-if="backgroundUrl" ng-src="{{backgroundUrl}}"/>

Как получить ссылки на изображения с динамически изменяющегося сайта? Может ли BeautifulSoup справиться с этим? Если нет, какая библиотека выполнит эту работу?

Ответы [ 2 ]

1 голос
/ 11 апреля 2020
import requests
import re


def main(url):
    r = requests.get(url)
    match = re.search(r"(lh4\.googl.+?mv)", r.text).group(1)
    match = match.replace("\\", "").replace("u003d", "=")
    print(match)


main("https://clients3.google.com/cast/chromecast/home")
0 голосов
/ 11 апреля 2020

Просто незначительное дополнение к ответу αԋɱҽԃ αмєяιcαη (ахмед американский), если кому-то интересно

Субдомен (lhx) в lhx.google.com также динамический c. В результате ссылка может быть lh3 или lh4 и т.д. Американский был заменен на «lh.» , чтобы можно было собирать все изображения независимо от URL.

РЕДАКТИРОВАТЬ: Эта строка не работает:

match = match.replace('\\', '').replace("u003d", "=")

Заменить на:

match = match.replace("\\", "")
match = match.replace("u003d", "=")
...