Seite 1 von 1

Problem / Verständnisfrage Requests und BeautifulSoup

Verfasst: Samstag 3. November 2018, 13:48
von DrRocket
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

Re: Problem / Verständnisfrage Requests und BeautifulSoup

Verfasst: Samstag 3. November 2018, 15:06
von Sirius3
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/

Re: Problem / Verständnisfrage Requests und BeautifulSoup

Verfasst: Samstag 3. November 2018, 15:28
von DrRocket
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.