Не удалось прочитать страницу HTML, используя Python запросы - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть простая страница, содержащая изображение. Я хочу сохранить изображение локально. Поэтому я использую BeauitfulSoup, чтобы очистить src. Вот мой код:

    def getImage(url):

        page = requests.get(url).text
        #print(page)
        soup = BeautifulSoup(page, 'lxml')
        #print(soup)

        img = soup.find(name='img')

        if img is not None:
            #img = img.get('src')
            print(img.attrs)

Если я напечатаю page, это будет результат Я получу. Я также проверил, является ли страница HTML, она говорит , что это не . Но я не знаю, какой другой тип в этом случае. Я также пытался использовать разные парсеры, такие как lxml и html5lib.

Это страница HTML, которую я скопировал напрямую:

<html><head><meta name="viewport" content="width=device-width, minimum-scale=0.1">
<title>SOMETHING TITLE</title>
</head>
<body style="margin: 0px; background: #0e0e0e;">
<img style="-webkit-user-select: none;margin: auto;cursor: zoom-in;" src="http:<WHATEVER>" width="500" height="279">
</body></html>

Зашифрована ли страница? Это должно быть простой очисткой: (* ​​1018 *

1 Ответ

0 голосов
/ 03 февраля 2020

В вашем html нет атрибута с именем 'img'. Вы можете добавить имя (например,

 <img name='myImage' style='-webkit-user-select: none;margin: auto;cursor: zoom-in; src='http:<WHATEVER>'>

, а затем вы можете использовать

 img = soup.find(name='myImage')

, но если вы не можете изменить HTML, вы можете сделать что-то вроде этого:

   images = soup.findAll('img')
   for image in images:
     # do whatever
...