Ich mache ein Projekt auf Web-Crawling, für die ich alle Links innerhalb einer bestimmten Webseite finden muss. Bis jetzt benutzte ich urljoin
in urllib.parse
. Aber jetzt habe ich festgestellt, dass einige Links nicht ordnungsgemäß mit der urljoin
-Funktion verbunden sind.Vollständige URL aus href extrahieren mit Python
Für z.B. Das <a>
-Tag könnte etwas wie <a href="a.xml?value=basketball">A</a>
sein. Die vollständige Adresse könnte jedoch http://www.example.org/main/test/a.xml?value=basketball
sein, aber die urljoin
-Funktion wird falsche Ergebnisse geben (etwa).
-Code, die ich verwende:
parentUrl = urlQueue.get()
html = get_page_source(parentUrl)
bSoup = BeautifulSoup(html, 'html.parser')
aTags = bSoup.find_all('a', href=True)
for aTag in aTags:
childUrl = aTag.get('href')
# just to check if the url is complete or not(for .com only)
if '.com' not in childUrl:
# this urljoin is giving invalid resultsas mentioned above
childUrl = urljoin(parentUrl, childUrl)
Gibt es eine Möglichkeit, durch die ich richtig zwei URLs beitreten können, diese Fälle einschließlich?
Sie erhalten eher Hilfe, wenn Sie nur minimalen Arbeitscode zum Erstellen bereitstellen. – handle
Sagen Sie mir, wenn Sie etwas anderes brauchen ... Mein Hauptanliegen ist es jedoch, eine absolute Link-Adresse mit dem Attribut href zu erstellen, das manchmal nicht den vollständigen Pfad enthält. –
Löschen Sie den HINWEIS. Es ist eine Browserfunktion. –