crawlen (benötige hilfe beim code)

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
nexuz89
User
Beiträge: 18
Registriert: Montag 27. Juli 2020, 10:59

]Hi zusammen ich hab da ein kleines Problem ich bin am crawlen einer Seite.
Bei dem img Url habe ich meine Probleme.
Da manche Url imgs aderst gekapselt sind.

1: Httm code:

https://www.apo-rot.de/details/ferrum-q ... tel.a__z.f

Code: Alles auswählen

<div class="col-xs-12 col-sm-12 col-md-3 margin-vert-smaller">
<div data-sourcefile="details_images.jsp" class="" style="padding:16px 10px 40px 10px;position:relative;">
<div id="pic_1" class="details_image">
<img name="/mproducts/P3733393.JPG" class="img-responsive" title="Ferrum Quarz D 6 Trituration" alt="Ferrum Quarz D 6 Trituration" src="https://bilder.apo-rot.de/mproducts/P3733393.JPG">
/div>
2: Httm code:

https://www.apo-rot.de/details/ferrum-q ... tel.a__z.f

Code: Alles auswählen

<div data-sourcefile ="details_images.jsp" class style="padding:16px 10px 40px 10px;position:relative;"">
<div id="pic_1" class="details_image" style=" display: block;"
<a class="fancybox-image" rel="productimages" href="https://bilder.apo-rot.de/xxlproducts.own/P1572690.PNG" style="height: auto;">
 <img name="/mproducts.own/P1572690.PNG" class="img-responsive" title="Ferrum-Quarz-Kapseln " alt="Ferrum-Quarz-Kapseln " src="https://bilder.apo-rot.de/mproducts.own/P1572690.PNG">
 <span class="glyphicon glyphicon-zoom-in icon-grey float-right" style="font-size:1.25rem;"></span>
 </a>
Mein Code zum scrapen ist folgender

Code: Alles auswählen

sleep(2)
    img_url_text = 'N/D'
    try:
        text = driver.find_element_by_xpath("//*[@id='pic_1']/img").get_attribute('src')
        if text is not None:
            img_url_text = text
        else: img_url_text = 'N/D'
        driver.close()
    finally:
        print(img_url_text)
wie ihr seht beide httm codes sind anders leider bekomme ich ein Fehler beim scraping , was auch logisch ist da die einen Bilder gekapselt sind und die anderen nicht.

könntet ihr mir dabei helfen das ich mit einem Code beide URL Images crawlen kann ?

Vielen dank für die Hilfe
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da in homöopathischen Mitteln eh nix drin ist, brauchst du nur ein Bild für alle....

SCNR.
Benutzeravatar
__blackjack__
User
Beiträge: 13061
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

👍 🤣
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Mit folgendem Code komme ich bei beiden URLs an das Produktfoto:

Ist allerdings mit bs4 und requests gelöst, nicht mit selenium.

Code: Alles auswählen

from bs4 import BeautifulSoup
import requests


HEADERS = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}


URLS = ["https://www.apo-rot.de/details/ferrum-quarz-kapseln/1572690.html?_menuid=7688868&_nav=alternative_therapien.homoeopathie.komplexmittel.a__z.f",
        "https://www.apo-rot.de/details/ferrum-quarz-d-6-trituration/3733393.html?_menuid=7688868&_nav=alternative_therapien.homoeopathie.komplexmittel.a__z.f"]

def main():
    for url in URLS:
        page = requests.get(url, headers=HEADERS)
        soup = BeautifulSoup(page.content, "html.parser")
        product = soup.find('div',{'class':'details_image'})
        image_urls = product.find_all('img',{'class':'img-responsive'})
        for image_url in image_urls:
            print(image_url['src'])

main()
nexuz89
User
Beiträge: 18
Registriert: Montag 27. Juli 2020, 10:59

Super, ich danke dir hat funktioniert :)
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Jankie hat geschrieben: Montag 10. August 2020, 06:33 Mit folgendem Code komme ich bei beiden URLs an das Produktfoto:

Ist allerdings mit bs4 und requests gelöst, nicht mit selenium.
Das ist dem TE egal, er schnorrt sich eh einfach nur überall seine Skripte zusammen.


https://greasyfork.org/de/discussions/d ... g-problems

und so weiter.
Antworten