python запросов- html получить значение id элемента - PullRequest
1 голос
/ 04 августа 2020

Я играл с примером, взятым отсюда: { ссылка }

это работает и было очень полезно, но я борюсь с запросами - html документация. В этом примере возможно ли получить значение id элемента?

from requests_html import AsyncHTMLSession
from collections import defaultdict
import pandas as pd 


url = 'https://www.flashscore.com/football/england/premier-league-2018-2019/results/'

asession = AsyncHTMLSession()

async def get_scores():
    r = await asession.get(url)
    await r.html.arender()
    return r

results = asession.run(get_scores)
results = results[0]

times = results.html.find("div.event__time")
home_teams = results.html.find("div.event__participant.event__participant--home") 
scores = results.html.find("div.event__scores.fontBold")
away_teams = results.html.find("div.event__participant.event__participant--away")
event_part = results.html.find("div.event__part")


dict_res = defaultdict(list)

for ind in range(len(times)):
    dict_res['times'].append(times[ind].text)
    dict_res['home_teams'].append(home_teams[ind].text)
    dict_res['scores'].append(scores[ind].text)
    dict_res['away_teams'].append(away_teams[ind].text)
    dict_res['event_part'].append(event_part[ind].text)

df_res = pd.DataFrame(dict_res)

1 Ответ

1 голос
/ 05 августа 2020

Мне удалось получить идентификатор способом, который я не знаю, будет ли он наиболее подходящим. Я искал всю игру

match_div = results.html.find("div.event__match")

, а затем получил идентификатор из ее атрибутов

for ind in range(len(times)):
    id = match_div[ind].attrs['id']

Я думаю, что это должен быть более «прямой» способ сделать это, но не попасть

...