Получение Imgur Image Link через Python для веб-скрейпинга - PullRequest
2 голосов
/ 27 сентября 2019

Я пытаюсь получить ссылку на изображение с помощью imgur.com.Кажется, что изображение (если .jpg или .png) обычно хранится в (div class = "image post-image") на их веб-сайте, например:

<div class='image post-image'>
    <img alt="" src="//i.imgur.com/QSGvOm3.jpg" original-title="" style="max-width: 100%; min-height: 666px;">
</div>

, так что вот мой код:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'https://imgur.com/gallery/0PTPt'
html = urlopen(url)
soup = BeautifulSoup(html, 'lxml')
info = soup.find_all('div', {'class':'post-image'})

file = open('imgur-html.txt', 'w')
file.write(str(info))
file.close()

Вместо того, чтобы получать все в этих тегах, это мой вывод:

<div class="post-image" style="min-height: 666px">
</div> 

Что мне нужно сделать, чтобы получить доступ к этому дальше, чтобы я могполучить ссылку на изображение?Или это просто то, где мне нужно использовать только API?Спасибо за любую помощь.

1 Ответ

1 голос
/ 27 сентября 2019

Дочерний img, казалось бы, динамически добавляется и отсутствует.Вы можете извлечь полную ссылку из rel

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://imgur.com/gallery/0PTPt')
soup = bs(r.content, 'lxml')
print(soup.select_one('[rel=image_src]')['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...