Seite 1 von 1

mehrer URLs mit urllib.request.urlopen ?

Verfasst: Dienstag 21. Februar 2017, 19:26
von Pythty
Hallo ich hab ein kleines Problem mit meinem kleinen Crawler

ich habe mittel BeautifulSoup auf einer Webseite eine Seitenanzahl ermittelt,
so das ich jetzt als ausgabe eine Liste mit den URL habe also

http://www.domain.de/verzeich/seite2
http://www.domain.de/verzeich/seite3
http://www.domain.de/verzeich/seite4

ect.

Code: Alles auswählen

    sort = "&show=32&sort=alphabetical"
    url = "http://www.domain.de/verzeich" + sort

    r = requests.get(url)
    soup = BeautifulSoup(r.content)

    seitenanzahlFinder = soup.find_all("a", {"class": "search_nav"})
    for item in seitenanzahlFinder:
        seitenanzahl = (item.text)
    seitenanzahl = int(item.text)
    
    urlListe = []
    for j in range(seitenanzahl, 1, -1):        
        UrlNum=(str(j))
        URL="http://www.domain.de/verzeich/seite"
        allurl = URL + UrlNum + sort
        urlListe.append(allurl)
    print(urlListe)

das ganze möchte ich jetzt weite verarbeiten und mit jeder URL druchwechseln

Code: Alles auswählen

    sauce = urllib.request.urlopen(urlListe).read()
    soup = bs.BeautifulSoup(sauce,'lxml')

    img = soup.find_all('div', {'class': 'img'})
    imgGet = str(img)
jetzt erhalte ich aber immer die Fehlermeldung:
AttributeError: 'list' object has no attribute 'timeout'
bekomme es irgendwie nicht hin und sehe den Wald vor lauter Code nicht mehr ???

Re: mehrer URLs mit urllib.request.urlopen ?

Verfasst: Dienstag 21. Februar 2017, 19:37
von BlackJack
@Pythty: Du kannst `urlopen()` keine Liste mit URLs übergeben. Was soll denn da als Ergebnis kommen? Damit öffnet man *eine* URL. Warum überhaupt `urlopen()` wenn Du davor ja schon `requests()` verwendet hast?

Wenn Du mit jeder URL etwas machen willst, dann musst Du Code schreiben der das für eine URL macht, und den dann mit jeder URL ausführen. Dafür gibt's zum Beispiel ``for``-Schleifen.

Re: mehrer URLs mit urllib.request.urlopen ?

Verfasst: Dienstag 21. Februar 2017, 20:28
von Pythty
ah ok aber ich hab es