2017-07-11 3 views
0

Ich habe ein Problem mit dem folgenden Code und es tut mir leid, ich bin neu zu diesem alle, ich möchte die Strings in der FullPage-Liste der tatsächlichen URL hinzufügen und dann möchte ich sie besuchen und einige Daten von den Seiten schaben . Bisher war es gut, aber ich weiß nicht, wie ich die anderen Links in der Liste besuchen soll.Wie kratze ich Daten von mehreren Webseiten mit BeauitfulSoup?

Die Ausgabe gibt mir nur die Daten einer Seite, aber ich brauche die Daten für 30 Seiten, wie kann ich dieses Programm über jeden Link gehen?

Die URL hat ein Muster, der erste Teil hat 'http://arduinopak.com/Prd.aspx?Cat_Name=' und dann hat der zweite Teil den Namen der Produktkategorie.

import urllib2 
from bs4 import BeautifulSoup 

FullPage = ['New-Arrivals-2017-6', 'Big-Sales-click-here', 'Arduino-Development-boards', 
      'Robotics-and-Copters'] 


urlp1 = "http://www.arduinopak.com/Prd.aspx?Cat_Name=" 
URL = urlp1 + FullPage[0] 

for n in FullPage: 
    URL = urlp1 + n 
    page = urllib2.urlopen(URL) 
    bsObj = BeautifulSoup(page, "html.parser") 


descList = bsObj.findAll('div', attrs={"class": "panel-default"}) 
for desc in descList: 
    print(desc.getText(separator=u' ')) 

Antwort

1
import urllib2 
from bs4 import BeautifulSoup 

FullPage = ['New-Arrivals-2017-6', 'Big-Sales-click-here', 'Arduino-Development-boards', 
      'Robotics-and-Copters'] 

urlp1 = "http://www.arduinopak.com/Prd.aspx?Cat_Name=" 
URL = urlp1 + FullPage[0] 

for n in FullPage: 
    URL = urlp1 + n 
    page = urllib2.urlopen(URL) 
    bsObj = BeautifulSoup(page, "html.parser") 

    descList = bsObtTj.findAll('div', attrs={"class": "panel-default"}) 
    for desc in descList: 
     print(desc.geext(separator=u' ')) 

Wenn Sie jeweils Links scape wollen dann bewegen letzten 3 Zeilen Code in Schleife wird es tun.

+0

War das alles? Oh mein Gott, ich bin so ein Anfänger. Vielen Dank, Bruder! –

+0

Ich bin froh, dass es hilfreich war. Akzeptiere einfach die Antwort –

0

Ihr aktueller Code ruft alle Links ab, speichert jedoch nur einen BeautifulSoup Objektverweis. Sie können sie stattdessen alle im Array speichern oder bearbeiten, bevor Sie eine andere URL aufrufen (wie unten gezeigt).

Beachten Sie auch, dass die Namen, die PascalCase verwenden, standardmäßig für Klassen reserviert sind. FullPage würde normalerweise als oder FULL_PAGE geschrieben werden, wenn es konstant sein soll.

Verwandte Themen