Mon code de référence:BeautifulSoup retourne urls de pages sur le site même raccourci
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
L'idée est, je reçois la charge utile d'une page Web, puis gratter que pour les liens hypertexte. L'un des liens est de yahoo.com, l'autre « http://csb.stanford.edu/class/public/index.html »
Cependant le résultat que je reçois de BeautifulSoup est:
>>> urls
['http://www.yahoo.com/', '../../index.html']
Cela pose un problème, parce que la deuxième partie du script ne peut pas être exécuté sur la seconde URL raccourcie. Est-il possible de faire en sorte que BeautifulSoup récupère l'URL complète?
bien sûr, merci. Je peux inclure la partie de jointure d'url dans les exceptions. –
sur une autre réflexion, je ne vais pas déranger, c'est seulement spécifique à une seule page Web et ne vaut pas la peine de déranger vraiment –