Problem / Verständnisfrage Requests und BeautifulSoup

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DrRocket
User
Beiträge: 30
Registriert: Freitag 11. Mai 2018, 15:11

Hallo zusammen,

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
Sirius3
User
Beiträge: 17752
Registriert: Sonntag 21. Oktober 2012, 17:20

Solche Seiten arbeiten viel mit Javascript. Und die Anbieter sehen es auch nicht gerne, dass man direkt die Webseiten abgrast. Dafür gibt es spezielle APIs, z.B.: https://azure.microsoft.com/de-de/servi ... earch-api/
DrRocket
User
Beiträge: 30
Registriert: Freitag 11. Mai 2018, 15:11

Ok, danke für die Info. Das es im Quelltext viele <script> tags und Javascript gibt, ist mir auch aufgefallen. Ich probier mal eine einfachere Seite.
Antworten