J'ai donc posé une question plus tôt sur la récupération des scores élevés d'une page html et un autre utilisateur m'a donné le code suivant pour aider. Je suis nouveau à python et à beautifulsoup donc j'essaye de passer par d'autres codes morceau par morceau. Je comprends la plus grande partie, mais je n'obtiens pas ce que ce morceau de code est et quelle est sa fonction:Que fait cette fonction en Python impliquant urllib2 et BeautifulSoup?
def parse_string(el):
text = ''.join(el.findAll(text=True))
return text.strip()
Voici le code entier:
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
utilisation des backticks pour HTML. :) –
pourquoi est-il un '' avec rien dedans pour ouvrir le texte =? et que font les commandes et les bandes exactement? Et pourquoi cela a-t-il dû être défini comme une fonction avant d'être appliqué aux données? Merci. – Alex
'' .join signifie joindre chaque élément avec une chaîne vide (il n'y a donc pas de délimiteur). – Jacob