Frage

Deshalb habe ich früher eine Frage zum Abrufen von hohen Ergebnissen aus dem Formular eine HTML -Seite gestellt, und ein anderer Benutzer gab mir den folgenden Code, um zu helfen. Ich bin neu in Python und BeautifulSoup, also versuche ich, Stück für Stück ein anderes Codes zu durchgehen. Ich verstehe das meiste, aber ich verstehe nicht, was dieses Stück Code ist und was seine Funktion ist:

    def parse_string(el):
       text = ''.join(el.findAll(text=True))
       return text.strip()

Hier ist der gesamte Code:

from urllib2 import urlopen
from BeautifulSoup import BeautifulSoup
import sys

URL = "http://hiscore.runescape.com/hiscorepersonal.ws?user1=" + sys.argv[1]

# Grab page html, create BeatifulSoup object
html = urlopen(URL).read()
soup = BeautifulSoup(html)

# Grab the <table id="mini_player"> element
scores = soup.find('table', {'id':'mini_player'})

# Get a list of all the <tr>s in the table, skip the header row
rows = scores.findAll('tr')[1:]

# Helper function to return concatenation of all character data in an element
def parse_string(el):
   text = ''.join(el.findAll(text=True))
   return text.strip()

for row in rows:

   # Get all the text from the <td>s
   data = map(parse_string, row.findAll('td'))

   # Skip the first td, which is an image
   data = data[1:]

   # Do something with the data...
   print data 
War es hilfreich?

Lösung

el.findAll(text=True) Gibt den gesamten in einem Element und seinen Unterelementen enthaltenen Text zurück. Mit Text meine ich alles nicht in einem Tag; Also in <b>hello</b> Dann wäre "Hallo" aber der Text, aber <b> und </b> würde nicht.

Diese Funktion verbindet daher den gesamten Text, der unter dem angegebenen Element gefunden wurde, und streifen die Whitespace von vorne und hinten aus.

Hier ist ein Link zum findAll Dokumentation: http://www.krummy.com/software/beautifulsoup/documentation.html#arg-text

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top