Javascript 在java脚本表的一个单元格中为每个玩家刮取多个球杆-在同一列表元素中显示这两个球杆
我的问题是,在javascript表的最后一个单元格中,我通过“img”获取球员所效力的俱乐部 我需要一个包含不同单元格条目的数据框,当有两个俱乐部时,我的两个俱乐部都在同一个数据框单元格尤文图斯都灵/多特蒙德。 否则我会遇到一个问题,代码返回不同长度的列表,并不是所有内容都适合数据帧 我已经尝试过使用if循环来指示一个单元格中是否有两个img等,但没有成功 多谢各位Javascript 在java脚本表的一个单元格中为每个玩家刮取多个球杆-在同一列表元素中显示这两个球杆,javascript,python,web-scraping,Javascript,Python,Web Scraping,我的问题是,在javascript表的最后一个单元格中,我通过“img”获取球员所效力的俱乐部 我需要一个包含不同单元格条目的数据框,当有两个俱乐部时,我的两个俱乐部都在同一个数据框单元格尤文图斯都灵/多特蒙德。 否则我会遇到一个问题,代码返回不同长度的列表,并不是所有内容都适合数据帧 我已经尝试过使用if循环来指示一个单元格中是否有两个img等,但没有成功 多谢各位 season_list_def = season_list[0::3] startdate_list = season_list
season_list_def = season_list[0::3]
startdate_list = season_list[1::3]
enddate_list = season_list[2::3]
你的问题不清楚。您使用的是一个名为
team\u list
的列表,但讨论的是数据帧。你期望的结果是什么?最后我会从不同的列表中生成一个数据框-我会在不同的列表中删除表格中的所有信息。第一步就是得到整个表格?我已经有了整个表格-所有的伤病、所有的日期和赛季。我只是没有把整个代码。问题是,当有两个俱乐部表示,列表必须分开的元素,但我想有两个俱乐部的单元格成一个元素。通过代码,我得到了所有的俱乐部,但都在单独的列表元素中。我希望每次迭代只追加一个项目,如果有两个俱乐部,两个都是
url = 'https://www.transfermarkt.ch/emre-can/verletzungen/spieler/119296/ajax/yw1/page1'
response = requests.get(url, headers={'User-Agent': 'Custom5'})
injury_data = response.text
soup = BeautifulSoup(injury_data, 'html.parser')
table = soup.find(id="yw1")
injurytypes = table.select("td[class='hauptlink bg_rot_20']") + table.select("td[class='hauptlink']")
all_injuries = [injury.text for injury in injurytypes]
injury_list.extend(all_injuries)
seasons = table.select("td[class='zentriert bg_rot_20']") + table.select("td[class='zentriert']")
all_seasons = [season.text for season in seasons]
season_list.extend(all_seasons)
days = table.select("td[class='rechts bg_rot_20']") + table.select("td[class='rechts']")
all_days =[float(day.text.split()[0]) for day in days]
day_list.extend(all_days)
missedgames = table.select("td[class='rechts hauptlink wappen_verletzung bg_rot_20']") + table.select("td[class='rechts hauptlink wappen_verletzung']")
all_missedgames = [float(missedgame.text.replace("-", "0")) for missedgame in missedgames]
missedgame_list.extend(all_missedgames)
for item in table.select('img', class_='tiny_wappen', recursive=True):
team_list.append(item.get('alt'))
season_list_def = season_list[0::3]
startdate_list = season_list[1::3]
enddate_list = season_list[2::3]
df = pd.DataFrame({"injurytype": injury_list, "season": season_list_def, "injury_start": startdate_list, "injury_end": enddate_list, "absence_duration": day_list, "missed_games": missedgame_list, "Team": np.nan})
df.loc[df["missed_games"] != 0, "Team"] = team_list #this is not working because the lenght of team list is not from equal size because I have two clubs in one cell.
df