Чтобы получить изображения, хранящиеся в виде переменной, просто потяните теги <img>
. Возможно, есть несколько изображений, поэтому они могут быть сохранены в списке с использованием списка понимания:
import requests
from bs4 import BeautifulSoup
print("\nLoading Data..")
result = requests.get("https://qr.ae/TWGJU0")
success = result.status_code
if success==200:
print("Connection to the webpage was successful..!\n")
src = result.content
soup = BeautifulSoup(src, 'lxml')
question = soup.find("a", attrs={'class': 'question_link'})
print("Question:"+question.text)
author = soup.find("a", attrs={'class': 'user'})
print("Author:"+author.text)
profile = soup.find("a", attrs={'class': 'user'})
print("Author Profile: https://www.quora.com"+profile.attrs['href'])
print("\n")
answer = soup.find("div", attrs={'class':'u-serif-font-main--regular'})
print("Answer:"+answer.text)
print("\n")
images = [ each['src'] for each in answer.find_all('img') ]
for image in images:
print ("Images:" + image)
Теперь ваши изображения хранятся в одной переменной:
print (images)
['https://qph.fs.quoracdn.net/main-qimg-1034d14bf757fcbedc38dfdb186413d3']
Или
import requests
from bs4 import BeautifulSoup
print("\nLoading Data..")
result = requests.get("https://qr.ae/TWGJU0")
success = result.status_code
if success==200:
print("Connection to the webpage was successful..!\n")
src = result.content
soup = BeautifulSoup(src, 'lxml')
question = soup.find("a", attrs={'class': 'question_link'})
print("Question:"+question.text)
author = soup.find("a", attrs={'class': 'user'})
print("Author:"+author.text)
profile = soup.find("a", attrs={'class': 'user'})
print("Author Profile: https://www.quora.com"+profile.attrs['href'])
print("\n")
answer = soup.find("div", attrs={'class':'u-serif-font-main--regular'})
answer_images = []
for sentence in answer.find_all():
if sentence.name == 'p':
answer_images.append(sentence.text)
if sentence.name == 'img':
answer_images.append(sentence['src'])
answer = ' '.join(answer_images)
print("Answer:"+answer)
Если вы хотите сохранить этот ответ с изображением внутри ответа, вы можете перебирать эти элементы. Оно не будет отображать изображение, если только вы не сделаете еще какие-либо манипуляции, такие как сохранение его в виде html или преобразование URL-адреса в изображение каким-либо образом, используя cv2
, или matplot, или какой-либо другой пакет для отображения изображения:
Другой способ:
import requests
from bs4 import BeautifulSoup
from matplotlib import pyplot as plt
print("\nLoading Data..")
result = requests.get("https://qr.ae/TWGJU0")
success = result.status_code
if success==200:
print("Connection to the webpage was successful..!\n")
src = result.content
soup = BeautifulSoup(src, 'lxml')
question = soup.find("a", attrs={'class': 'question_link'})
print("Question:"+question.text)
author = soup.find("a", attrs={'class': 'user'})
print("Author:"+author.text)
profile = soup.find("a", attrs={'class': 'user'})
print("Author Profile: https://www.quora.com"+profile.attrs['href'])
print("\n")
answer = soup.find("div", attrs={'class':'u-serif-font-main--regular'})
answer_images = []
for sentence in answer.find_all():
if sentence.name == 'p':
answer_images.append(sentence.text)
if sentence.name == 'img':
answer_images.append(sentence['src'])
for each in answer_images:
if 'https://' in each:
a = plt.imread('https://qph.fs.quoracdn.net/main-qimg-1034d14bf757fcbedc38dfdb186413d3')
plt.axis('off')
plt.imshow(a)
plt.show()
else:
print (each + ' ')
Выход: