2
votes

Attributs Web scrape qui ne sont pas toujours inclus dans la balise Python Beautifulsoup

J'essaie de gratter une URL ' https: // www .pro-football-reference.com / teams / nwe / 2013_injuries.htm 'en utilisant Beautiful Soup. Je veux gratter le nom des joueurs, leur blessure et la semaine de leur blessure

Le nom des joueurs est simple à gratter car il s'agit d'un texte dans une certaine balise et est toujours inclus dans l'étiquette. La semaine est un attribut ["data-stat"] de la balise et est également toujours incluse dans la balise. La blessure est également un attribut ["data-tip"] de la même balise semaine est , mais elle n'est incluse dans la balise que lorsque le joueur a un blessure.

J'ai essayé d'utiliser une instruction if else pour l'état de la blessure, donc si la balise contenait une blessure, elle afficherait les données de la blessure ["- tip "] et sinon, il afficherait simplement" NA ". À partir du code que j'ai écrit, il imprime les noms des deux premiers joueurs, la blessure et la semaine de la blessure, mais le troisième joueur ne contient pas l'attribut de blessure ["data-tip"] dans le et le code se briserait et imprimait juste les deux premiers joueurs:

[['Danny Amendola'], 'Questionable: hamstring', 'week_1']
[['Armond Armstead'], 'Out: infection', 'week_1']
[['Kyle Arrington'], 'NA', 'week_1']

Résultat de mon code! Expérimenter une KeyError.

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://www.pro-football-reference.com/teams/nwe/2013_injuries.htm'

# opening up connection, grabbing the page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

# html parsing
page_soup = soup(page_html, "html.parser")

containers = page_soup.find("tbody")

player = containers.find_all("tr")
for tr in player:
    th = tr.find_all("th")
    name = [i.text for i in th]

    week = tr.td["data-stat"]

    injury = tr.td["data-tip"]
    if injury is None:
        injury = "NA"
        print([name, injury, week])
    else:
        print([name, injury, week])

Le résultat que je recherche est le code pour imprimer les noms des joueurs, la blessure (si aucune blessure, écrivez "NA") et la semaine de la blessure pour tous les joueurs de la table. Par exemple, le troisième joueur du tableau n'a pas de blessure pour la semaine 1, donc sa blessure devrait afficher "NA":

[['Danny Amendola'], 'Questionable: hamstring', 'week_1']
[['Armond Armstead'], 'Out: infection', 'week_1']

La liste devrait continuer pour le reste des joueurs aiment ça.


2 commentaires

Lorsque la boucle arrive au troisième tr ne peut pas voir un td avec data-tip et vous essayez de l'égaler avec blessure avant la vérification est Aucun ou non


@Kevin, lorsque j'exécute le code, je rencontre une KeyError . Est-ce la même erreur que vous rencontrez? Et si oui, pouvez-vous ajouter ceci à votre question (où vous n'imprimez que deux listes). Ceci est utile pour les autres qui pourraient examiner la question.


3 Réponses :


1
votes

Vous voudrez probablement utiliser une instruction try et except . Vous rencontrez un KeyError car si un joueur n'a pas de blessure, il n'y aura pas d'attribut data-tip . Après la ligne de code week = # ... reste du code , procédez comme suit:

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://www.pro-football-reference.com/teams/nwe/2013_injuries.htm'

# opening up connection, grabbing the page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

# html parsing
page_soup = soup(page_html, "html.parser")

containers = page_soup.find("tbody")

player = containers.find_all("tr")
for tr in player:
    th = tr.find_all("th")
    name = [i.text for i in th]

    week = tr.td["data-stat"]

    try:
        injury = tr.td["data-tip"]
        print([name, injury, week])
    except KeyError:
        injury = "NA"
        print([name, injury, week])

Cela essaiera d'obtenir le nom de la blessure et si ce n'est pas le cas ' t existe alors il le mettra à "NA". Cela dit, votre code fixe devrait ressembler à ceci:

try:
    injury = tr.td["data-tip"]
    print([name, injury, week])
except KeyError:
    injury = "NA"
    print([name, injury, week])


2 commentaires

Cela a très bien fonctionné, merci! Donc, ce code renvoie les blessures des joueurs pour la semaine 1. Savez-vous si je peux boucler ce code d'une manière ou d'une autre qu'il renverra toutes les blessures pour chaque semaine; semaine 1, semaine 2, semaine 3 ... etc au lieu de simplement renvoyer les blessures de la semaine 1? Merci.


@Kevin, vous aurez besoin de travailler dessus, mais cela devrait être juste une autre boucle qui fait le code que vous avez pour chaque semaine



1
votes

Je suis d'accord avec la solution de Jack Moody (en ajoutant simplement les semaines supplémentaires), alors veuillez accepter sa réponse / solution à votre question. Mais voici les données / colonnes supplémentaires:

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'https://www.pro-football-reference.com/teams/nwe/2013_injuries.htm'

# opening up connection, grabbing the page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

# html parsing
page_soup = soup(page_html, "html.parser")

containers = page_soup.find("tbody")
head = page_soup.find("thead")


player = containers.find_all("tr")

weeks = head.find_all('th')
week_list = [i['data-stat'] for i in weeks][1:]

for week in week_list:
    for tr in player:
        th = tr.find_all("th")
        name = [i.text for i in th]

        td = tr.find('td', {'data-stat':week})
        week = td["data-stat"]

        try:
            injury = td["data-tip"]
            print([name, injury, week])
        except KeyError:
            injury = "NA"
            print([name, injury, week])


5 commentaires

merci, c'est très utile, mais lorsque j'exécute ce code, il affiche les blessures de la semaine 1 pour toutes les semaines au lieu de progresser et d'afficher les blessures de la semaine 2 pour la semaine 2, les blessures de la semaine 3 pour la semaine 3 et ainsi de suite.


@Kevin, je ne sais pas ce que tu veux dire. Je viens de le relancer et il affiche les blessures de la semaine 1, suivies de la semaine 2, suivie de la semaine 3, etc.


@Kevin, AH OK! Je vois totalement ce que tu veux dire. Le numéro de la semaine est mis à jour, mais affiche toujours la blessure de la semaine 1. Je réglerai ça dès que j'en aurai l'occasion.


@Kevin, je l'ai réparé. Petite erreur là-dedans. j'ai dû remplacer blessure = tr.td ["data-tip"] par simplement blessure = td ["data-tip"] Je ne voulais pas du premier élément la ligne à chaque fois, je voulais juste cet élément spécifique


@Kevin n'oubliez pas d'accepter la solution si cela a fonctionné pour vous



0
votes

Vous pouvez gratter le tableau, puis utiliser zip pour transposer les lignes pour chaque semaine:

[{'Player': 'Danny Amendola', '09/08vs. BUF': 'Questionable: hamstring', '09/12vs. NYJ': 'Questionable: groin', '09/22vs. TAM': 'Doubtful: groin', '09/29vs. ATL': 'Questionable: groin', '10/06vs. CIN': 'Questionable: groin', '10/13vs. NOR': 'Probable: groin', '10/20vs. NYJ': 'Out: concussion', '10/27vs. MIA': 'Questionable: concussion', '11/03vs. PIT': 'Questionable: groin', '11/18vs. CAR': 'Probable: groin', '11/24vs. DEN': 'Probable: groin', '12/01vs. HOU': 'Probable: groin', '12/08vs. CLE': 'Probable: groin', '12/15vs. MIA': 'Probable: groin', '12/22vs. BAL': 'Questionable: groin', '12/29vs. BUF': 'Probable: groin', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Armond Armstead', '09/08vs. BUF': 'Out: infection', '09/12vs. NYJ': 'Out: infection', '09/22vs. TAM': 'Out: infection', '09/29vs. ATL': 'Out: infection', '10/06vs. CIN': 'Out: infection', '10/13vs. NOR': 'Out: infection', '10/20vs. NYJ': 'Out: infection', '10/27vs. MIA': 'Out: infection', '11/03vs. PIT': 'Out: infection', '11/18vs. CAR': 'Out: infection', '11/24vs. DEN': 'Out: infection', '12/01vs. HOU': 'Out: infection', '12/08vs. CLE': 'Out: infection', '12/15vs. MIA': 'Out: infection', '12/22vs. BAL': 'Out: infection', '12/29vs. BUF': 'Out: infection', '01/11vs. IND': 'Out: infection', '01/19vs. DEN': 'Out: infection'}, {'Player': 'Kyle Arrington', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Questionable: groin', '10/06vs. CIN': 'Questionable: groin', '10/13vs. NOR': 'Probable: groin', '10/20vs. NYJ': 'Probable: groin', '10/27vs. MIA': 'Probable: groin', '11/03vs. PIT': 'Questionable: groin', '11/18vs. CAR': 'Questionable: groin', '11/24vs. DEN': 'Probable: groin', '12/01vs. HOU': 'Questionable: groin', '12/08vs. CLE': 'Questionable: groin', '12/15vs. MIA': 'Questionable: groin', '12/22vs. BAL': 'Questionable: groin', '12/29vs. BUF': 'Questionable: groin', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Brandon Bolden', '09/08vs. BUF': 'Questionable: knee', '09/12vs. NYJ': 'Questionable: knee', '09/22vs. TAM': 'Questionable: knee', '09/29vs. ATL': 'Questionable: knee', '10/06vs. CIN': 'Questionable: knee', '10/13vs. NOR': 'Probable: knee', '10/20vs. NYJ': 'Questionable: knee', '10/27vs. MIA': 'Questionable: knee', '11/03vs. PIT': 'Questionable: knee', '11/18vs. CAR': 'Questionable: knee', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Josh Boyce', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'Doubtful: hip', '12/29vs. BUF': 'Questionable: hip', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Tom Brady', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'Probable: right shoulder', '11/03vs. PIT': 'Probable: right shoulder', '11/18vs. CAR': 'Probable: right shoulder', '11/24vs. DEN': 'Probable: right shoulder', '12/01vs. HOU': 'Probable: shoulder', '12/08vs. CLE': 'Probable: right shoulder', '12/15vs. MIA': 'Questionable: shoulder', '12/22vs. BAL': 'Probable: right shoulder', '12/29vs. BUF': 'Probable: right shoulder', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Marcus Cannon', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Questionable: shoulder', '10/27vs. MIA': 'Questionable: shoulder', '11/03vs. PIT': 'Questionable: shoulder', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'Questionable: ankle', '12/08vs. CLE': 'Questionable: ankle', '12/15vs. MIA': 'Questionable: ankle', '12/22vs. BAL': 'Questionable: ankle', '12/29vs. BUF': 'Questionable: ankle', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Marquice Cole', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Probable: hamstring', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Questionable: hamstring', '10/06vs. CIN': 'Questionable: hamstring', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'Questionable: leg', '12/08vs. CLE': 'Questionable: shin', '12/15vs. MIA': 'Questionable: shin', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Austin Collie', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Dan Connolly', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'Questionable: finger', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Questionable: head', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Alfonzo Dennard', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Probable: ankle', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'Questionable: leg', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'Questionable: knee', '12/08vs. CLE': 'Questionable: knee', '12/15vs. MIA': 'Questionable: knee/shoulder', '12/22vs. BAL': 'Questionable: knee/shoulder', '12/29vs. BUF': 'Questionable: knee/shoulder', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Aaron Dobson', '09/08vs. BUF': 'Questionable: hamstring', '09/12vs. NYJ': 'Questionable: hamstring', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Doubtful: shoulder', '10/06vs. CIN': 'Questionable: neck', '10/13vs. NOR': 'Questionable: neck', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'Questionable: undisclosed', '12/08vs. CLE': 'Questionable: foot', '12/15vs. MIA': 'Questionable: foot', '12/22vs. BAL': 'Questionable: foot', '12/29vs. BUF': 'Questionable: foot', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Nate Ebner', '09/08vs. BUF': 'Questionable: ankle', '09/12vs. NYJ': 'Questionable: ankle', '09/22vs. TAM': 'Questionable: ankle', '09/29vs. ATL': 'Questionable: ankle', '10/06vs. CIN': 'Questionable: ankle', '10/13vs. NOR': 'Probable: ankle', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Julian Edelman', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Questionable: thigh', '10/27vs. MIA': 'Questionable: thigh', '11/03vs. PIT': 'Probable: thigh', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Dane Fletcher', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'Questionable: groin', '12/29vs. BUF': 'Questionable: groin', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Tyronne Green', '09/08vs. BUF': 'Injured Reserve: undisclosed', '09/12vs. NYJ': 'Injured Reserve: undisclosed', '09/22vs. TAM': 'Injured Reserve: undisclosed', '09/29vs. ATL': 'Injured Reserve: undisclosed', '10/06vs. CIN': 'Injured Reserve: undisclosed', '10/13vs. NOR': 'Injured Reserve: undisclosed', '10/20vs. NYJ': 'Injured Reserve: undisclosed', '10/27vs. MIA': 'Injured Reserve: undisclosed', '11/03vs. PIT': 'Injured Reserve: undisclosed', '11/18vs. CAR': 'Injured Reserve: undisclosed', '11/24vs. DEN': 'Injured Reserve: undisclosed', '12/01vs. HOU': 'Injured Reserve: undisclosed', '12/08vs. CLE': 'Injured Reserve: undisclosed', '12/15vs. MIA': 'Injured Reserve: undisclosed', '12/22vs. BAL': 'Injured Reserve: undisclosed', '12/29vs. BUF': 'Injured Reserve: undisclosed', '01/11vs. IND': 'Injured Reserve: undisclosed', '01/19vs. DEN': 'Injured Reserve: undisclosed'}, {'Player': 'Steve Gregory', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'Out: thumb', '11/24vs. DEN': 'Questionable: finger', '12/01vs. HOU': 'Questionable: finger', '12/08vs. CLE': 'Questionable: finger', '12/15vs. MIA': 'Questionable: finger', '12/22vs. BAL': 'Questionable: finger', '12/29vs. BUF': 'Questionable: knee/finger', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Cory Grissom', '09/08vs. BUF': 'Injured Reserve: knee', '09/12vs. NYJ': 'Injured Reserve: knee', '09/22vs. TAM': 'Injured Reserve: knee', '09/29vs. ATL': 'Injured Reserve: knee', '10/06vs. CIN': 'Injured Reserve: knee', '10/13vs. NOR': 'Injured Reserve: knee', '10/20vs. NYJ': 'Injured Reserve: knee', '10/27vs. MIA': 'Injured Reserve: knee', '11/03vs. PIT': 'Injured Reserve: knee', '11/18vs. CAR': 'Injured Reserve: knee', '11/24vs. DEN': 'Injured Reserve: knee', '12/01vs. HOU': 'Injured Reserve: knee', '12/08vs. CLE': 'Injured Reserve: knee', '12/15vs. MIA': 'Injured Reserve: knee', '12/22vs. BAL': 'Injured Reserve: knee', '12/29vs. BUF': 'Injured Reserve: knee', '01/11vs. IND': 'Injured Reserve: knee', '01/19vs. DEN': 'Injured Reserve: knee'}, {'Player': 'Rob Gronkowski', '09/08vs. BUF': 'Doubtful: arm/back', '09/12vs. NYJ': 'Questionable: arm/back', '09/22vs. TAM': 'Doubtful: arm/back', '09/29vs. ATL': 'Questionable: arm/back', '10/06vs. CIN': 'Doubtful: arm/back', '10/13vs. NOR': 'Probable: arm/back', '10/20vs. NYJ': 'Questionable: arm/back', '10/27vs. MIA': 'Probable: back/forearm', '11/03vs. PIT': 'Probable: back/forearm/hamstring', '11/18vs. CAR': 'Probable: back/forearm/hamstring', '11/24vs. DEN': 'Probable: back/forearm/hamstring', '12/01vs. HOU': 'Probable: hamstring', '12/08vs. CLE': 'Questionable: ankle', '12/15vs. MIA': 'Injured Reserve: torn right ACL/MCL', '12/22vs. BAL': 'Injured Reserve: torn right ACL/MCL', '12/29vs. BUF': 'Injured Reserve: torn right ACL/MCL', '01/11vs. IND': 'Injured Reserve: torn right ACL/MCL', '01/19vs. DEN': 'Injured Reserve: torn right ACL/MCL'}, {'Player': 'Duron Harmon', '09/08vs. BUF': 'Questionable: hamstring', '09/12vs. NYJ': 'Questionable: hamstring', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Mark Harrison', '09/08vs. BUF': 'Out: foot', '09/12vs. NYJ': 'Out: foot', '09/22vs. TAM': 'Out: foot', '09/29vs. ATL': 'Out: foot', '10/06vs. CIN': 'Out: foot', '10/13vs. NOR': 'Out: foot', '10/20vs. NYJ': 'Out: foot', '10/27vs. MIA': 'Out: foot', '11/03vs. PIT': 'Out: foot', '11/18vs. CAR': 'Out: foot', '11/24vs. DEN': 'Out: foot', '12/01vs. HOU': 'Out: foot', '12/08vs. CLE': 'Out: foot', '12/15vs. MIA': 'Out: foot', '12/22vs. BAL': 'Out: foot', '12/29vs. BUF': 'Out: foot', '01/11vs. IND': 'Out: foot', '01/19vs. DEN': 'Out: foot'}, {'Player': "Dont'a Hightower", '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'Questionable: knee', '10/13vs. NOR': 'Probable: knee', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Michael Hoomanawanui', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Questionable: knee', '10/27vs. MIA': 'Questionable: knee', '11/03vs. PIT': 'Questionable: knee', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'Questionable: knee', '12/01vs. HOU': 'Questionable: knee', '12/08vs. CLE': 'Probable: knee', '12/15vs. MIA': 'Questionable: knee', '12/22vs. BAL': 'Questionable: knee', '12/29vs. BUF': 'Probable: knee', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Tommy Kelly', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'Questionable: knee', '10/20vs. NYJ': 'Questionable: knee', '10/27vs. MIA': 'Questionable: knee', '11/03vs. PIT': 'Questionable: knee', '11/18vs. CAR': 'Injured Reserve: knee', '11/24vs. DEN': 'Injured Reserve: knee', '12/01vs. HOU': 'Injured Reserve: knee', '12/08vs. CLE': 'Injured Reserve: knee', '12/15vs. MIA': 'Injured Reserve: knee', '12/22vs. BAL': 'Injured Reserve: knee', '12/29vs. BUF': 'Injured Reserve: knee', '01/11vs. IND': 'Injured Reserve: knee', '01/19vs. DEN': 'Injured Reserve: knee'}, {'Player': 'Jerod Mayo', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Questionable: ankle', '10/06vs. CIN': 'Questionable: ankle', '10/13vs. NOR': 'Probable: ankle', '10/20vs. NYJ': 'Injured Reserve: shoulder', '10/27vs. MIA': 'Injured Reserve: shoulder', '11/03vs. PIT': 'Injured Reserve: shoulder', '11/18vs. CAR': 'Injured Reserve: shoulder', '11/24vs. DEN': 'Injured Reserve: shoulder', '12/01vs. HOU': 'Injured Reserve: shoulder', '12/08vs. CLE': 'Injured Reserve: shoulder', '12/15vs. MIA': 'Injured Reserve: shoulder', '12/22vs. BAL': 'Injured Reserve: shoulder', '12/29vs. BUF': 'Injured Reserve: shoulder', '01/11vs. IND': 'Injured Reserve: shoulder', '01/19vs. DEN': 'Injured Reserve: shoulder'}, {'Player': 'Devin McCourty', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Questionable: shoulder', '10/27vs. MIA': 'Probable: shoulder', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'Questionable: head', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'T.J. Moe', '09/08vs. BUF': 'Injured Reserve: Achilles', '09/12vs. NYJ': 'Injured Reserve: Achilles', '09/22vs. TAM': 'Injured Reserve: Achilles', '09/29vs. ATL': 'Injured Reserve: Achilles', '10/06vs. CIN': 'Injured Reserve: Achilles', '10/13vs. NOR': 'Injured Reserve: Achilles', '10/20vs. NYJ': 'Injured Reserve: Achilles', '10/27vs. MIA': 'Injured Reserve: Achilles', '11/03vs. PIT': 'Injured Reserve: Achilles', '11/18vs. CAR': 'Injured Reserve: Achilles', '11/24vs. DEN': 'Injured Reserve: Achilles', '12/01vs. HOU': 'Injured Reserve: Achilles', '12/08vs. CLE': 'Injured Reserve: Achilles', '12/15vs. MIA': 'Injured Reserve: Achilles', '12/22vs. BAL': 'Injured Reserve: Achilles', '12/29vs. BUF': 'Injured Reserve: Achilles', '01/11vs. IND': 'Injured Reserve: Achilles', '01/19vs. DEN': 'Injured Reserve: Achilles'}, {'Player': 'Rob Ninkovich', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'Probable: groin', '10/20vs. NYJ': 'Probable: groin', '10/27vs. MIA': 'Probable: groin', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'Questionable: foot', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'Questionable: ankle', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Stevan Ridley', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Probable: shoulder', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'Questionable: knee', '10/13vs. NOR': 'Questionable: knee', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Matt Slater', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Questionable: knee', '09/22vs. TAM': 'Out: wrist', '09/29vs. ATL': 'Out: wrist', '10/06vs. CIN': 'Out: wrist', '10/13vs. NOR': 'Out: wrist', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'Questionable: wrist', '11/03vs. PIT': 'Probable: wrist', '11/18vs. CAR': 'Probable: wrist', '11/24vs. DEN': 'Probable: wrist', '12/01vs. HOU': 'Probable: wrist', '12/08vs. CLE': 'Probable: right shoulder', '12/15vs. MIA': 'Probable: wrist', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Nate Solder', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'Probable: back', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'Questionable: concussion', '12/22vs. BAL': 'Questionable: concussion', '12/29vs. BUF': 'Questionable: concussion', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Brandon Spikes', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'Questionable: knee', '12/01vs. HOU': 'Probable: knee', '12/08vs. CLE': 'Questionable: knee', '12/15vs. MIA': 'Questionable: knee', '12/22vs. BAL': 'Questionable: knee', '12/29vs. BUF': 'Questionable: knee', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Zach Sudfeld', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Questionable: hamstring', '09/22vs. TAM': 'Probable: hamstring', '09/29vs. ATL': 'Probable: hamstring', '10/06vs. CIN': 'Questionable: hamstring', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Will Svitek', '09/08vs. BUF': 'Questionable: knee', '09/12vs. NYJ': 'Questionable: knee', '09/22vs. TAM': 'Questionable: knee', '09/29vs. ATL': 'Questionable: knee', '10/06vs. CIN': 'Questionable: knee', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'Questionable: ankle', '12/15vs. MIA': 'Questionable: ankle', '12/22vs. BAL': 'Questionable: ankle', '12/29vs. BUF': 'Questionable: ankle', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Aqib Talib', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'Questionable: hip', '10/20vs. NYJ': 'Questionable: hip', '10/27vs. MIA': 'Questionable: hip', '11/03vs. PIT': 'Questionable: hip', '11/18vs. CAR': 'Questionable: hip', '11/24vs. DEN': 'Questionable: hip', '12/01vs. HOU': 'Questionable: hip', '12/08vs. CLE': 'Questionable: hip', '12/15vs. MIA': 'Questionable: hip', '12/22vs. BAL': 'Questionable: hip', '12/29vs. BUF': 'Probable: hip', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Kenbrell Thompkins', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'Questionable: shoulder', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'Questionable: hip', '12/15vs. MIA': 'Questionable: hip', '12/22vs. BAL': 'Questionable: hip', '12/29vs. BUF': 'Questionable: hip', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Shane Vereen', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Out: wrist', '09/22vs. TAM': 'Injured Reserve: wrist', '09/29vs. ATL': 'Injured Reserve: wrist', '10/06vs. CIN': 'Injured Reserve: wrist', '10/13vs. NOR': 'Injured Reserve: wrist', '10/20vs. NYJ': 'Injured Reserve: wrist', '10/27vs. MIA': 'Injured Reserve: wrist', '11/03vs. PIT': 'Injured Reserve: wrist', '11/18vs. CAR': 'Injured Reserve: wrist', '11/24vs. DEN': 'Probable: wrist', '12/01vs. HOU': 'Probable: wrist', '12/08vs. CLE': 'Probable: wrist', '12/15vs. MIA': 'Probable: wrist', '12/22vs. BAL': 'Questionable: groin', '12/29vs. BUF': 'Probable: groin', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Sebastian Vollmer', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Questionable: foot', '10/06vs. CIN': 'Questionable: foot', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'Injured Reserve: leg', '11/18vs. CAR': 'Injured Reserve: leg', '11/24vs. DEN': 'Injured Reserve: leg', '12/01vs. HOU': 'Injured Reserve: leg', '12/08vs. CLE': 'Injured Reserve: leg', '12/15vs. MIA': 'Injured Reserve: leg', '12/22vs. BAL': 'Injured Reserve: leg', '12/29vs. BUF': 'Injured Reserve: leg', '01/11vs. IND': 'Injured Reserve: leg', '01/19vs. DEN': 'Injured Reserve: leg'}, {'Player': 'Leon Washington', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'Questionable: thigh', '09/22vs. TAM': 'Questionable: thigh', '09/29vs. ATL': 'Questionable: thigh', '10/06vs. CIN': 'Questionable: thigh', '10/13vs. NOR': 'Questionable: ankle', '10/20vs. NYJ': 'Questionable: ankle', '10/27vs. MIA': 'Questionable: ankle', '11/03vs. PIT': 'Questionable: ankle', '11/18vs. CAR': 'Questionable: ankle', '11/24vs. DEN': 'Questionable: ankle', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Ryan Wendell', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'Questionable: concussion', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Chris White', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'N/A', '10/13vs. NOR': 'N/A', '10/20vs. NYJ': 'N/A', '10/27vs. MIA': 'N/A', '11/03vs. PIT': 'N/A', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'Questionable: back', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Vince Wilfork', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'Probable: foot', '10/06vs. CIN': 'Out: Achilles', '10/13vs. NOR': 'Injured Reserve: Achilles', '10/20vs. NYJ': 'Injured Reserve: Achilles', '10/27vs. MIA': 'Injured Reserve: Achilles', '11/03vs. PIT': 'Injured Reserve: Achilles', '11/18vs. CAR': 'Injured Reserve: Achilles', '11/24vs. DEN': 'Injured Reserve: Achilles', '12/01vs. HOU': 'Injured Reserve: Achilles', '12/08vs. CLE': 'Injured Reserve: Achilles', '12/15vs. MIA': 'Injured Reserve: Achilles', '12/22vs. BAL': 'Injured Reserve: Achilles', '12/29vs. BUF': 'Injured Reserve: Achilles', '01/11vs. IND': 'Injured Reserve: Achilles', '01/19vs. DEN': 'Injured Reserve: Achilles'}, {'Player': 'Adrian Wilson', '09/08vs. BUF': 'Injured Reserve: hamstring', '09/12vs. NYJ': 'Injured Reserve: hamstring', '09/22vs. TAM': 'Injured Reserve: hamstring', '09/29vs. ATL': 'Injured Reserve: hamstring', '10/06vs. CIN': 'Injured Reserve: hamstring', '10/13vs. NOR': 'Injured Reserve: hamstring', '10/20vs. NYJ': 'Injured Reserve: hamstring', '10/27vs. MIA': 'Injured Reserve: hamstring', '11/03vs. PIT': 'Injured Reserve: hamstring', '11/18vs. CAR': 'Injured Reserve: hamstring', '11/24vs. DEN': 'Injured Reserve: hamstring', '12/01vs. HOU': 'Injured Reserve: hamstring', '12/08vs. CLE': 'Injured Reserve: hamstring', '12/15vs. MIA': 'Injured Reserve: hamstring', '12/22vs. BAL': 'Injured Reserve: hamstring', '12/29vs. BUF': 'Injured Reserve: hamstring', '01/11vs. IND': 'Injured Reserve: hamstring', '01/19vs. DEN': 'Injured Reserve: hamstring'}, {'Player': 'Tavon Wilson', '09/08vs. BUF': 'N/A', '09/12vs. NYJ': 'N/A', '09/22vs. TAM': 'N/A', '09/29vs. ATL': 'N/A', '10/06vs. CIN': 'Questionable: hamstring', '10/13vs. NOR': 'Questionable: hamstring', '10/20vs. NYJ': 'Questionable: hamstring', '10/27vs. MIA': 'Questionable: hamstring', '11/03vs. PIT': 'Questionable: hamstring', '11/18vs. CAR': 'N/A', '11/24vs. DEN': 'N/A', '12/01vs. HOU': 'N/A', '12/08vs. CLE': 'N/A', '12/15vs. MIA': 'N/A', '12/22vs. BAL': 'N/A', '12/29vs. BUF': 'N/A', '01/11vs. IND': 'N/A', '01/19vs. DEN': 'N/A'}, {'Player': 'Markus Zusevics', '09/08vs. BUF': 'Injured Reserve: undisclosed', '09/12vs. NYJ': 'Injured Reserve: undisclosed', '09/22vs. TAM': 'Injured Reserve: undisclosed', '09/29vs. ATL': 'Injured Reserve: undisclosed', '10/06vs. CIN': 'Injured Reserve: undisclosed', '10/13vs. NOR': 'Injured Reserve: undisclosed', '10/20vs. NYJ': 'Injured Reserve: undisclosed', '10/27vs. MIA': 'Injured Reserve: undisclosed', '11/03vs. PIT': 'Injured Reserve: undisclosed', '11/18vs. CAR': 'Injured Reserve: undisclosed', '11/24vs. DEN': 'Injured Reserve: undisclosed', '12/01vs. HOU': 'Injured Reserve: undisclosed', '12/08vs. CLE': 'Injured Reserve: undisclosed', '12/15vs. MIA': 'Injured Reserve: undisclosed', '12/22vs. BAL': 'Injured Reserve: undisclosed', '12/29vs. BUF': 'Injured Reserve: undisclosed', '01/11vs. IND': 'Injured Reserve: undisclosed', '01/19vs. DEN': 'Injured Reserve: undisclosed'}]

Sortie:

import requests
from bs4 import BeautifulSoup as soup
d = soup(requests.get('https://www.pro-football-reference.com/teams/nwe/2013_injuries.htm').text, 'html.parser')
_header, *data = d.find('table', {'id':'team_injuries'}).find_all('tr')
_all_data = [(lambda x:[c.find('th').text, *[i.attrs.get('data-tip', 'N/A') for i in x]])(c.find_all('td')) for c in data]
new_data = [dict(zip([i.text.rstrip() for i in _header.find_all('th')], c)) for c in _all_data]


0 commentaires