Проблема с декодированием URL-адресов Новостей Google, содержащих информацию о согласии.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с декодированием URL-адресов Новостей Google, содержащих информацию о согласии.

Сообщение Anonymous »

У меня возникла особая проблема с декодированием URL-адресов новостей Google в формате Base64 в Python, когда они содержат не только URL-адрес, но и информацию о согласии.
Основываясь на старой проблеме с декодированием URL-адресов новостей Google, я написал следующую функцию в более крупном скрипте, которая правильно декодирует 99% моих URL-адресов:

Код: Выделить всё

def decode_google_url(e):
global faulty_urls
faulty_urls=[]
# trim leading/trailing whitespace
e = e.strip()
# decode string to get target URL
try:
target_url = base64.b64decode(e)[4:].decode('utf-8', "backslashreplace").split('\\')[0]
target_urls.append(target_url)
except Exception as ex:
print(f"Error decoding URL: {ex}")
# all exceptions are triggered by links that contain consent information as well as URLs
faulty_urls.append(e)

return faulty_urls
return target_urls
Как видно из комментария, исключения вызываются закодированными URL-адресами, которые также содержат информацию о согласии. Одним из примеров является следующая строка из 276 символов, которую base64 в моем скрипте не декодирует, поскольку она якобы не представляет собой число, кратное 4:

Код: Выделить всё

CBMiYWh0dHBzOi8vd3d3LnRpbWVzb2Zpc3JhZWwuY29tL2Zvci15ZWFycy1uZXRhbnlhaHUtcHJvcHBlZC11cC1oYW1hcy1ub3ctaXRzLWJsb3duLXVwLWluLW91ci1mYWNlcy_SAWVodHRwczovL3d3dy50aW1lc29maXNyYWVsLmNvbS9mb3IteWVhcnMtbmV0YW55YWh1LXByb3BwZWQtdXAtaGFtYXMtbm93LWl0cy1ibG93bi11cC1pbi1vdXItZmFjZXMvYW1wLw==
Когда я помещаю это в онлайн-декодер, я получаю следующую информацию:
"Мне как минимум 18 лет и Я даю согласие на обработку моих персональных данных в соответствии с политикой конфиденциальности этого сайта.
https://www.timesofisrael.com/for-years ... s-blown-up -in-our-faces-🔓 https://www.timesofisrael.com/for-years ... faces/map/"
Удаление информации о согласии и значка из строки, чтобы оставить только URL-адрес, не было бы проблемой, но я даже не могу получить этот декодированный результат в своем сценарии, поскольку входная строка вызывает ошибку.

Подробнее здесь: https://stackoverflow.com/questions/783 ... nformation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»