2016-07-28 7 views
-1

Im stecken bei einem Problem mit Python 2.7.12 mit BeautifulSoup, um einige Webpage Daten zu kratzen, kann ich wirklich nicht herausfinden, wie ein bestimmtes 'title =' Tag zu kratzen innerhalb eines <a href link </a>Wie man Daten innerhalb eines <a href-Tags mit python BeautifulSoup

bis jetzt habe ich Ausgabe mit diesem Code erhalten:

import urllib2 
    from bs4 import BeautifulSoup 

    hdr = {'Accept': 'text/html,application/xhtml+xml,*/*',"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"} 
    url = 'REMOVED' 

    req=urllib2.Request(url,headers=hdr) 
    urllib2.urlopen(url).read() 
    html = urllib2.urlopen(req).read() 
    soup=BeautifulSoup(html,"html5lib") 

    players = soup.find_all("td", {"data-title": "Navn"}) 

    player_data = "" 
    saveFile = open('player_data.txt','w') 

for item in players: 

    player_data = item.contents[0].encode("utf-8") 
    print player_data 
    saveFile.write (player_data) 

saveFile.close()  

ich Zeilen von Daten in diesem Format:

<a href="/da/player/123/lionel-messi/" title="Lionel Messi">Lionel Messi</a> 

Könnte jemand bitte helfen Sie mir die Spezifikation zu erhalten ific Namen von 'title =' Ich kann es einfach nicht scheinen zu erhalten arbeitet ...

Vielen Dank im Voraus :)

+0

na ja, im sorry, wenn Sie denken, es ist ein Duplikat ... im ziemlich neu in Python-Programmierung und bin seit 2 Tagen mit diesem Problem beschäftigt, und glaube mir, ich habe zahlreiche Ansätze dazu gelesen und ausprobiert, auch auf ähnliche Fragen von stackoverflow, aber ich habe keine andere Frage gesehen, die meinem Problem ähnlich ist. Bitte verlinke mich auf diese ursprüngliche Frage, danke;) - Ich denke, das ist wahrscheinlich ziemlich leicht zu überwinden mit Jahren der Python Erfahrung, aber ich habe ' t :) – BulletEyeDK

Antwort

3

Um den Titel von href Code zu erhalten:

players = soup.find('a')['title'] 

Ausgang:

Lionel Messi 

Was ist soup.find('a')['title']?

  • .find('a') den A HREF-Tag
  • ['title] bedeutet erhalten den Titel-Attribut von einem Tag
+0

Danke für deinen Kommentar, irgendwie ... ich kann immer noch nicht herausfinden, wie es funktioniert, es tut mir leid, aber ich bin ziemlich frisch mit Python arbeiten ... kann ich das in einem "einzeiligen" Code lösen mit meiner eigentlichen Codezeile: players = soup.find_all ("td", {"daten-titel": "Navn"}) da dieser da sein muss ... sonst habe ich die Daten nicht zum starten – BulletEyeDK

+0

läuft die genaue Zeile des Codes gibt mir diesen Fehler: TypeError: 'NoneType' Objekt ist nicht iterierbar – BulletEyeDK

+0

Vielen Dank für nützliche Informationen, ich habe es mit 'code' player_data = item.contents [0] ['title']. Encode ("utf-8") 'Code'' Danke;) – BulletEyeDK