Как очистить изображение / файл с веб-страницы в Python? - PullRequest
0 голосов
/ 11 декабря 2019

Я пытаюсь использовать Python3.7.4 для резервного копирования изображений на сайте блога, например, http://s2.sinaimg.cn/mw690/001H6t4Fzy7zgC0WLXb01&690 Если я введу вышеуказанный адрес в адресную строку Firefox, файл будет показан правильно. Если я использую следующий код для загрузки рисунка, сервер всегда перенаправляет на изображение по умолчанию:

from requests import get # just to try different methods
from urllib.request import urlopen
from urllib.parse import urlsplit, urlunsplit, quote

# hard-coded address is randomly selected for debug purpose.
origPict = 'http://s2.sinaimg.cn/mw690/001H6t4Fzy7zgC0WLXb01&690' 
p = urlsplit (origPict)
newP = quote (p.path)
origPict = urlunsplit ([p.scheme, p.netloc, newP, p.query, p.fragment])

try:
  #url_file = urlopen(origPict)
  #u = url_file.geturl ()
  url_file = get (origPict)
  u = url_file.url
  if u != origPict:
    raise Exception ('Failed to get picture ' + origPict)
...

Любая подсказка, почему запросам.get или urllib.urlopen не нравится '&' в URL?

Обновления: спасибо за комментарии Артура, я понимаю, что вопрос не в самом запросе, а в механизме защиты сайта: js или cookie-файлы или что-то еще в обратной связи веб-страницы на сервер, чтобы он мог судить, поступает ли запрос со скребка. Поэтому теперь возникает вопрос, как очистить изображение с веб-страницы, что сложнее, чем просто загрузить изображение с URL.

...