Mein Code als Referenz:BeautifulSoup gibt URLs der Seiten auf derselben Website verkürzt
import httplib2
from bs4 import BeautifulSoup
h = httplib2.Http('.cache')
response, content = h.request('http://csb.stanford.edu/class/public/pages/sykes_webdesign/05_simple.html')
soup = BeautifulSoup(content, "lxml")
urls = []
for tag in soup.findAll('a', href=True):
urls.append(tag['href'])
responses = []
contents = []
for url in urls:
try:
response1, content1 = h.request(url)
responses.append(response1)
contents.append(content1)
except:
pass
Die Idee ist, erhalte ich die Nutzlast einer Webseite, und dann kratzen, dass für Hyperlinks. Einer der Links ist zu yahoo.com, die andere zu ‚http://csb.stanford.edu/class/public/index.html‘
jedoch das Ergebnis bin ich von BeautifulSoup bekommen ist:
>>> urls
['http://www.yahoo.com/', '../../index.html']
dies ein Problem darstellt, weil der zweite Teil des Skripts kann nicht auf der zweiten, verkürzten URL ausgeführt werden. Gibt es eine Möglichkeit, BeautifulSoup die vollständige URL abrufen zu lassen?
natürlich, danke. Ich kann den URL-Join-Teil in die Ausnahmen aufnehmen. –
auf weiteren Gedanken, ich werde nicht stören, es ist nur spezifisch für eine einzelne Webseite und nicht lohnt sich wirklich zu kümmern –