ich habe ein Verständnisproblem beim Lernen von Python. Im Besonderen mit den Modulen requests und BeautifulSoup. Nachfolgend die Details:
Ansatz / Vorgehen:
- Ich crawle die Suchergebnisses eines bestimmten Inputs ("pizza" im Beispiel) bei Bing
- Im Element der Klasse "mimg" sind unter dem Atribut "src" die Links zu den Bildern abgelegt
- die will ich in einer Liste ablegen und später weiterverarbeiten
Problem:
- Der Quelltext auf der Bingseite enthält die gesuchten URLs
- Der via requests angeforderte und via BS geparste text nicht
- Warum sind die URLs nicht in dem request Ergebnis enthalten?
Der Code:
Code: Alles auswählen
import requests
from io import BytesIO
from PIL import Image
import simplejson as json
from bs4 import BeautifulSoup
search6 = input("Suchbegriff:")
print(search6)
counter6 = 1
params6 = {"q" : search6}
url6 = "https://www.bing.com/images/search"
r6 = requests.get(url6, params=params6)
print("r6:", r6.url)
soup6 = BeautifulSoup(r6.text, "lxml")
with open("./soup6.html", "w+", encoding="utf-8") as file6:
file6.write(soup6.text)
print("soup6:", soup6)
# links6 = soup6.findAll("img", {"class" : "mimg")
# print("links6:", links6)
for element in links6:
img_object6 = requests.get(element.attrs["src"])
print(img_object6)
img6 = Image.open(BytesIO(img_object6.content))
img6.save("./scraped_images/" + search6 + counter6, img.format)
counter6 += 1