Я написал скальпер на python для анализа некоторых данных с веб-страницы.Мое намерение состоит в том, чтобы хранить данные в словаре.Вместо того, чтобы демонстрировать полный стол, я просто попробовал с одним tr
, содержащим информацию об одном игроке.Данные поступают, но формат вывода не похож на словарь.Любая помощь, чтобы сделать его точным, будет высоко оценен.
Это моя попытка:
import requests
from bs4 import BeautifulSoup
URL = "https://fantasy.premierleague.com/player-list/"
def get_data(link):
res = requests.get(link,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"lxml")
data = []
for content in soup.select("div.ism-container"):
itmval = {}
itmval['name'] = content.select_one("h2").text
itmval['player_info'] = [[item.get_text(strip=True) for item in items.select("td")] for items in content.select(" table:nth-of-type(1) tr:nth-of-type(2)")]
data.append(itmval)
print(data)
if __name__ == '__main__':
get_data(URL)
Вывод, который я имею:
[{'name': 'Goalkeepers', 'player_info': [['De Gea', 'Man Utd', '161', '£5.9']]}]
Вывод Iожидайте получить:
[{'name': 'Goalkeepers', 'player_info': ['De Gea', 'Man Utd', '161', '£5.9']}]
Кстати, я собираюсь проанализировать полную таблицу, но я показал здесь минимальную часть для вашего наблюдения скважины.