ZERLEGUNG von HTML -, link-text und Ziel -
Gegeben, einen HTML-link wie
<a href="urltxt" class="someclass" close="true">texttxt</a>
wie kann ich isolieren Sie die url und den text?
Updates
Ich bin mit der Schönen Suppe, und bin nicht in der Lage, herauszufinden, wie zu tun.
Habe ich
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url))
links = soup.findAll('a')
for link in links:
print "link content:", link.content," and attr:",link.attrs
bekomme ich
*link content: None and attr: [(u'href', u'_redirectGeneric.asp?genericURL=/root /support.asp')]* ...
...
Warum bin ich fehlt der Inhalt?
edit: erarbeitet auf 'hängen', wie empfohlen 🙂
Sind die Chancen es gibt ein problem mit das urllib.urlopen(url). Drucken Sie, und sehen, was Sie erhalten. Es sollte die direkt HTML-Code der web-Seite.
Auch "stuck!" ist nicht sehr aussagekräftig. Zeig mehr code, und was genau falsch läuft.
Danke für die zusätzliche info, das machte es viel einfacher zu sehen, was passiert.
Auch "stuck!" ist nicht sehr aussagekräftig. Zeig mehr code, und was genau falsch läuft.
Danke für die zusätzliche info, das machte es viel einfacher zu sehen, was passiert.
InformationsquelleAutor sundeep | 2008-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Schöne Suppe. Es selbst tun, ist schwieriger als es aussieht, Sie werden besser mit einer erprobten und getesteten module.
EDIT:
Ich denke, Sie wollen:
Durch die Art und Weise, dass es eine schlechte Idee, zu versuchen, öffnen der URL gibt, als wenn es schief geht, könnte es hässlich werden.
EDIT 2:
Diese anzeigen sollten Sie alle links auf einer Seite:
wäre es besser, öffnen Sie die url woanders, und überprüfen Sie für Fehler es sich?
Ja, und haben ein try...except um es nur im Fall, dass es fehlschlägt.
auch nicht,was die u'text " gemeint ? vielen Dank für die Hilfe.
Die 'u' vor dem string bedeutet, es ist in Unicode. Siehe wikipedia was das bedeutet. Es sollte keinen Einfluss auf Sie zu viel.
InformationsquelleAutor Harley Holcombe
Hier ein code-Beispiel, zeigt immer die Attribute und der Inhalt des links:
InformationsquelleAutor Jerub
Sieht aus wie Sie zwei Probleme gibt:
InformationsquelleAutor Tom
Obwohl ich vermute, dass der andere könnte richtige, zeigen Sie mit Schönen Suppe, Sie könnte nicht, und mithilfe einer externen Bibliothek sein könnte massively over-the-top für Ihre Zwecke. Hier ist eine regex, die tun, was Sie Fragen.
Hier ist, was passt:
Wollte man nur den text (z.B.: "textsomething" im zweiten Beispiel oben), würde ich einfach laufen, eine andere regex drüber zu Streifen alles, was zwischen Spitzen Klammern.
InformationsquelleAutor nickf