рдбреЗрдЯрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдФрд░ рд╕рдлрд╛рдИ
рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдордирдЪрд╛рд╣реЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "0" рдХреЙрд▓рдо рдХреЛ рдХреЙрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрдИ рдХреЙрд▓рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ str.split() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
df1 = df[0].str.split(',', expand=True)
df1.head(10)

рдпрд╣ рдЕрдм рдмреЗрд╣рддрд░ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдЕрднреА рдмрд╛рдХреА рд╣реИред рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдХреА рдкреНрд░рддреНрдпреЗрдХ рд░реЛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╕реНрдХреНрд╡реЗрдпрд░ рдмреНрд░реИрдХреЗрдЯ рд╣реИрдВред рдЖрдк рдХреЙрд▓рдо "0" рдкрд░ рдУрдкрдирд┐рдВрдЧ рд╕реНрдХреНрд╡реЗрдпрд░ рдмреНрд░реИрдХреЗрдЯ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП strip() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
df1[0] = df1[0].str.strip('[')
df1.head(10)

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП find_all() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
col_labels = soup.find_all('th')
рдЯреЗрдмрд▓ рд░реЛ рдХреА рддрд░рд╣ рд╣реА, рдЖрдк рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рднреА BeautifulSoup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ html рдЯреИрдЧреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
all_header = []
col_str = str(col_labels)
cleantext2 = BeautifulSoup(col_str, "lxml").get_text()
all_header.append(cleantext2)
print(all_header)
['[Place, Bib, Name, Gender, City, State, Chip Time, Chip Pace, Gender Place, Age Group, Age Group Place, Time to Start, Gun Time, Team]']
рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдк рд╣реЗрдбрд░ рдХреА рд╕реВрдЪреА рдХреЛ pandas рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
df2 = pd.DataFrame(all_header)
df2.head()
| ┬а | 0 |
|---|---|
| 0 | [Place, Bib, Name, Gender, City, State, Chip T... |
рдЗрд╕реА рддрд░рд╣, рдЖрдк рд╕рднреА рд░реЛ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо "0" рдХреЛ рдХреЙрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрдИ рдХреЙрд▓рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
df3 = df2[0].str.split(',', expand=True)
df3.head()

рдиреАрдЪреЗ рджрд░реНрд╢рд╛рдП рдЕрдиреБрд╕рд╛рд░ concat() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдХреЛ рдПрдХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
frames = [df3, df1]
df4 = pd.concat(frames)
df4.head(10)

рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рд░реЛ рдХреЛ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреИрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
df5 = df4.rename(columns=df4.iloc[0])
df5.head()

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рддрд╛рд▓рд┐рдХрд╛ рд▓рдЧрднрдЧ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдлреЙрд░реНрдореЗрдЯ рд╣реЛ рдЪреБрдХреА рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
df5.info()
df5.shape
<class 'pandas.core.frame.DataFrame'>
Int64Index: 597 entries, 0 to 595
Data columns (total 14 columns):
[Place 597 non-null object
Bib 596 non-null object
Name 593 non-null object
Gender 593 non-null object
City 593 non-null object
State 593 non-null object
Chip Time 593 non-null object
Chip Pace 578 non-null object
Gender Place 578 non-null object
Age Group 578 non-null object
Age Group Place 578 non-null object
Time to Start 578 non-null object
Gun Time 578 non-null object
Team] 578 non-null object
dtypes: object(14)
memory usage: 70.0+ KB
(597, 14)
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 597 рд░реЛ рдФрд░ 14 рдХреЙрд▓рдо рд╣реИрдВред рдЖрдк рдЙрди рд╕рднреА рд░реЛ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЛрдИ рднреА рдорд╛рди рдЧрд╛рдпрдм рд╣реИред
df6 = df5.dropna(axis=0, how='any')
рд╕рд╛рде рд╣реА, рджреЗрдЦреЗрдВ рдХрд┐ df5 рдореЗрдВ рдкрд╣рд▓реА рд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реИред рдЗрд╕реЗ рдиреАрдЪреЗ рджреА рдЧрдИ рд▓рд╛рдЗрди рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
df7 = df6.drop(df6.index[0])
df7.head()

рдЖрдк '[Place' рдФрд░ ' Team]' рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдмрджрд▓рдХрд░ рдФрд░ рд╕рдлрд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Python рд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдЦреНрдд рд╣реИред ' Team]' рдореЗрдВ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рд╕реНрдкреЗрд╕ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
df7.rename(columns={'[Place': 'Place'},inplace=True)
df7.rename(columns={' Team]': 'Team'},inplace=True)
df7.head()

рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рд╕рдлрд╛рдИ рдЪрд░рдг рдореЗрдВ ' Team' рдХреЙрд▓рдо рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдЬрд╝рд┐рдВрдЧ рдмреНрд░реИрдХреЗрдЯ рд╣рдЯрд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
df7['Team'] = df7['Team'].str.strip(']')
df7.head()

рдпрд╣рд╛рдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдбреЗрдЯрд╛реЮреНрд░реЗрдо рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИред рдЕрдм рдЖрдк рд░реЛрдорд╛рдВрдЪрдХ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВтАФрдбреЗрдЯрд╛ рдкреНрд▓реЙрдЯ рдХрд░рдирд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдорд╛рди рдирд┐рдХрд╛рд▓рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
рдкрд╣рд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИ: рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдлрд┐рдирд┐рд╢ рд╕рдордп (рдорд┐рдирдЯреЛрдВ рдореЗрдВ) рдХреНрдпрд╛ рдерд╛? рдЖрдкрдХреЛ "Chip Time" рдХреЙрд▓рдо рдХреЛ рд╕рд┐рд░реНрдл рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдХреЛ рд╣реЗрд░рдлреЗрд░ рд╣реЗрддреБ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдмрджрд▓ рджреЗрдВред
time_list = df7[' Chip Time'].tolist()
# You can use a for loop to convert 'Chip Time' to minutes
time_mins = []
for i in time_list:
h, m, s = i.split(':')
math = (int(h) * 3600 + int(m) * 60 + int(s))/60
time_mins.append(math)
#print(time_mins)
рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╕реВрдЪреА рдХреЛ рд╡рд╛рдкрд╕ рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдмрджрд▓рдирд╛ рдФрд░ рдХреЗрд╡рд▓ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╡реНрдпрдХреНрдд рдзрд╛рд╡рдХреЛрдВ рдХреЗ рдЪрд┐рдк рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдХреЙрд▓рдо (Runner_mins) рдмрдирд╛рдирд╛ рд╣реИред
df7['Runner_mins'] = time_mins
df7.head()

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреЙрд▓рдореНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реА рдЬрд╛рдП, рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
df7.describe(include=[np.number])
| ┬а | Runner_mins |
|---|---|
| count | 577.000000 |
| mean | 60.035933 |
| std | 11.970623 |
| min | 36.350000 |
| 25% | 51.000000 |
| 50% | 59.016667 |
| 75% | 67.266667 |
| max | 101.300000 |
рджрд┐рд▓рдЪрд╕реНрдк рд░реВрдк рд╕реЗ, рд╕рднреА рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдЪрд┐рдк рд╕рдордп рд▓рдЧрднрдЧ 60 рдорд┐рдирдЯ рдерд╛ред рд╕рдмрд╕реЗ рддреЗрдЬ 10K рдзрд╛рд╡рдХ рдиреЗ 36.35 рдорд┐рдирдЯ рдореЗрдВ рдлрд┐рдирд┐рд╢ рдХрд┐рдпрд╛, рдФрд░ рд╕рдмрд╕реЗ рдзреАрдореЗ рдзрд╛рд╡рдХ рдиреЗ 101.30 рдорд┐рдирдЯ рдореЗрдВред
рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА (рдЕрдзрд┐рдХрддрдо, рдиреНрдпреВрдирддрдо, рдорд╛рдзреНрдпрд┐рдХрд╛, рдкреНрд░рдердо рдЪрддреБрд░реНрдердХ, рддреГрддреАрдп рдЪрддреБрд░реНрдердХ, рддрдерд╛ рдмрд╛рд╣реНрдп рдорд╛рди) рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдзрди рд╣реИред рдиреАрдЪреЗ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╣реИрдВред рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП, matplotlib рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ pylab рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдФрд░ рд╕рднреА рдлрд┐рдЧрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рд╛рдЗрдЬ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рддрд╛рдХрд┐ рд╣рд░ рдлрд┐рдЧрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рди рдХрд░рдирд╛ рдкрдбрд╝реЗред
from pylab import rcParams
rcParams['figure.figsize'] = 15, 5
df7.boxplot(column='Runner_mins')
plt.grid(True, axis='y')
plt.ylabel('Chip Time')
plt.xticks([1], ['Runners'])
([<matplotlib.axis.XTick at 0x570dd106d8>],
<a list of 1 Text xticklabel objects>)

рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди рд╣реИ: рдХреНрдпрд╛ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рдлрд┐рдирд┐рд╢ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рдереЗ?
рдиреАрдЪреЗ seaborn рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдзрд╛рд╡рдХреЛрдВ рдХреЗ рдЪрд┐рдк рд╕рдордп рдХрд╛ рд╡рд┐рддрд░рдг рдкреНрд▓реЙрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рддрд░рдг рд▓рдЧрднрдЧ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
x = df7['Runner_mins']
ax = sns.distplot(x, hist=True, kde=True, rug=False, color='m', bins=25, hist_kws={'edgecolor':'black'})
plt.show()

рддреАрд╕рд░рд╛ рдкреНрд░рд╢реНрди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдЖрдпреБ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдкреБрд░реБрд╖реЛрдВ рдФрд░ рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдерд╛ред рдиреАрдЪреЗ рдкреБрд░реБрд╖реЛрдВ рдФрд░ рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЗ рдЪрд┐рдк рд╕рдордп рдХрд╛ рд╡рд┐рддрд░рдг рдкреНрд▓реЙрдЯ рд╣реИред
f_fuko = df7.loc[df7[' Gender']==' F']['Runner_mins']
m_fuko = df7.loc[df7[' Gender']==' M']['Runner_mins']
sns.distplot(f_fuko, hist=True, kde=True, rug=False, hist_kws={'edgecolor':'black'}, label='Female')
sns.distplot(m_fuko, hist=False, kde=True, rug=False, hist_kws={'edgecolor':'black'}, label='Male')
plt.legend()
<matplotlib.legend.Legend at 0x570e301fd0>

рд╡рд┐рддрд░рдг рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдФрд╕рддрди рдорд╣рд┐рд▓рд╛рдПрдВ рдкреБрд░реБрд╖реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдореА рдереАрдВред рдЖрдк рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ groupby() рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрд░реБрд╖реЛрдВ рдФрд░ рдорд╣рд┐рд▓рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рд░рд╛рдВрд╢ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
g_stats = df7.groupby(" Gender", as_index=True).describe()
print(g_stats)
Runner_mins \
count mean std min 25% 50%
Gender
F 163.0 66.119223 12.184440 43.766667 58.758333 64.616667
M 414.0 57.640821 11.011857 36.350000 49.395833 55.791667
75% max
Gender
F 72.058333 101.300000
M 64.804167 98.516667
рд╕рднреА рдорд╣рд┐рд▓рд╛рдУрдВ рдФрд░ рдкреБрд░реБрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдЪрд┐рдк рд╕рдордп рдХреНрд░рдорд╢рдГ ~66 рдорд┐рдирдЯ рдФрд░ ~58 рдорд┐рдирдЯ рдерд╛ред рдиреАрдЪреЗ рдкреБрд░реБрд╖ рдФрд░ рдорд╣рд┐рд▓рд╛ рдлрд┐рдирд┐рд╢ рд╕рдордп рдХреА рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд╛рдЗрдб рдмреЙрдХреНрд╕рдкреНрд▓реЙрдЯ рддреБрд▓рдирд╛ рд╣реИред
df7.boxplot(column='Runner_mins', by=' Gender')
plt.ylabel('Chip Time')
plt.suptitle("")
C:\Users\smasango\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\fromnumeric.py:57: FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead
return getattr(obj, method)(*args, **kwds)
Text(0.5,0.98,'')

рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЖрдкрдиреЗ Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХреАред рдЖрдкрдиреЗ Beautiful Soup рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ html рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕реЗ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рдмрджрд▓рд╛ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрдкрдиреЗ Python рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╕рдлрд╛рдИ рдХреА рдФрд░ Python рдХреА matplotlib рдФрд░ seaborn рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд░реЛрдЪрдХ рд░реБрдЭрд╛рдиреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреНрд▓реЙрдЯреНрд╕ (рдмреЙрдХреНрд╕ рдкреНрд▓реЙрдЯреНрд╕, рдмрд╛рд░ рдкреНрд▓реЙрдЯреНрд╕, рдФрд░ рд╡рд┐рддрд░рдг рдкреНрд▓реЙрдЯреНрд╕) рдмрдирд╛рдПред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╡реЗрдм рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдХреНрд░реИрдк рдХрд░рдиреЗ, рд╕рдлрд╛рдИ рддрдХрдиреАрдХреЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐рдпрд╛рдБ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдк Python рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣реЗрдВ, рддреЛ DataCamp рдХрд╛ рдирд┐рдГрд╢реБрд▓реНрдХ Intro to Python for Data Science рдХреЛрд░реНрд╕ рд▓реЗрдВ рдФрд░ рд╣рдорд╛рд░рд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Amazon рдХреЛ рдХреИрд╕реЗ рд╕реНрдХреНрд░реИрдк рдХрд░реЗрдВред
рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рд╕реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рд╛ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд╛рд╣реЗ рдЖрдк рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯ рд╣реЛрдВ, рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реЛрдВ, рдпрд╛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдИ рднреА рдкреЗрд╢реЗрд╡рд░ рд╣реЛрдВтАФрд╡реЗрдм рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдХреНрд░реИрдк рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдПрдХ рдЙрдкрдпреЛрдЧреА рдХреМрд╢рд▓ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЛ рд╡реЗрдм рдкрд░ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╕реАрдзреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдРрд╕рд╛ рдХреМрд╢рд▓ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдЦреЗрдВрдЧреЗ:
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЬреВрди 2017 рдореЗрдВ Hillsboro, OR рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд 10K рд░реЗрд╕ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк 10K рдзрд╛рд╡рдХреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗрдВрдЧреЗ:
Beautiful Soup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ
Jupyter Notebook рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ (pandas, numpy,
matplotlib.pyplot, Seaborn) рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Jupyter Notebook рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз Anaconda Python рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдХреЗ рдЬрд░рд┐рдП рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛/рджреЗрддреА рд╣реВрдВред рдкреНрд▓реЙрдЯреНрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЗрди%matplotlibinline рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВредрд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
urllib.requestрдореЙрдбреНрдпреВрд▓ URLs рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред BeautifulSoup рдкреИрдХреЗрдЬ html рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИред BeautifulSoup рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдоbs4рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ BeautifulSoup, рд╕рдВрд╕реНрдХрд░рдг 4редрдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╡рд╛рд▓рд╛ URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреЗрдЬ рдХрд╛ html рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ
urlopen()рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПредрдкреЗрдЬ рдХрд╛ html рдкрд╛рдирд╛ рд╕рд┐рд░реНрдл рдкрд╣рд▓рд╛ рдЪрд░рдг рд╣реИред рдЕрдЧрд▓рд╛ рдЪрд░рдг html рд╕реЗ рдПрдХ
BeautifulSoupрдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реИред рдпрд╣BeautifulSoup()рдлрдВрдХреНрд╢рди рдореЗрдВ html рдкрд╛рд╕ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред BeautifulSoup рдкреИрдХреЗрдЬ html рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛рдиреА рдХрдЪреНрдЪреЗ html рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд▓реЗрдХрд░ рдЙрд╕реЗ Python рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рддреЛрдбрд╝рдирд╛ред рджреВрд╕рд░рд╛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯlxmlрдПрдХ html рдкрд╛рд░реНрд╕рд░ рд╣реИ, рдЬрд┐рд╕рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреА рдЪрд┐рдВрддрд╛ рдЖрдкрдХреЛ рдЕрднреА рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИредsoupрдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдкрдХреЛ рдЙрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрдХреНрд░реИрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВтАФрдЬреИрд╕реЗ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдкреЗрдЬ рдХрд╛ рд╢реАрд░реНрд╖рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛редрдЖрдк рд╡реЗрдмрдкреЗрдЬ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЬрд╛рдВрдЪ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рд╡реЗрдмрдкреЗрдЬ рдХрд╛ html рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдкреЗрдЬ рдкрд░ рдХрд╣реАрдВ рднреА рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ "Inspect" рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдЖрдк рд╡реЗрдмрдкреЗрдЬ рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧреА html рдЯреИрдЧреНрд╕ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП soup рдХреА
find_all()рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧреА рдЯреИрдЧреНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП < a >, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП < table >, рдЯреЗрдмрд▓ рд░реЛ рдХреЗ рд▓рд┐рдП < tr >, рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП < th >, рдФрд░ рдЯреЗрдмрд▓ рд╕реЗрд▓реНрд╕ рдХреЗ рд▓рд┐рдП < td > рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╡реЗрдмрдкреЗрдЬ рдХреЗ рднреАрддрд░ рд╕рднреА рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХреНрд╕ рдирд┐рдХрд╛рд▓рдирд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИредрдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, html рдЯреИрдЧреНрд╕ рдХрднреА-рдХрднреА class, src рдЖрджрд┐ рдЬреИрд╕реЗ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред рдпреЗ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ html рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХ for рд▓реВрдк рдФрд░
get("href")рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХреНрд╕ рдирд┐рдХрд╛рд▓рдХрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╕рд┐рд░реНрдл рдЯреЗрдмрд▓ рдХреА рд░реЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
soup.find_all()рдореЗрдВtrрдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдкрд╛рд╕ рдХрд░реЗрдВредрдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рд▓рдХреНрд╖реНрдп рдХрд┐рд╕реА рд╡реЗрдмрдкреЗрдЬ рд╕реЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд▓реЗрдХрд░ рдЙрд╕реЗ Python рдХреЗ рдЬрд░рд┐рдП рдЖрд╕рд╛рди рд╣реЗрд░рдлреЗрд░ рд╣реЗрддреБ рдПрдХ рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред рд╡рд╣рд╛рдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕рднреА рдЯреЗрдмрд▓ рд░реЛ рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЙрд╕ рд╕реВрдЪреА рдХреЛ рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреАрдЪреЗ рдПрдХ for рд▓реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЯреЗрдмрд▓ рд░реЛ рдкрд░ рдЗрдЯреЗрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░реЛ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ (рд╕реЗрд▓реНрд╕) рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рдКрдкрд░ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░реЛ html рдЯреИрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд┐рдВрдЯ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк Beautiful Soup рдпрд╛ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ html рдЯреИрдЧреНрд╕ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред
html рдЯреИрдЧреНрд╕ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ BeautifulSoup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рдХреЛрдб рд╕реЗ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдЪреНрдЫрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ
BeautifulSoup()рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ рдФрд░get_text()рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд┐рдирд╛ html рдЯреИрдЧреНрд╕ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдХрд╛рд▓реЗрдВредрд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлрд╝реА рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХреЛрдб рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЧрд▓рддреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП
re(рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕) рдореЙрдбреНрдпреВрд▓ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдЬреЛ < td > html рдЯреИрдЧреНрд╕ рдХреЗ рднреАрддрд░ рдХреЗ рд╕рднреА рдХреИрд░реЗрдХреНрдЯрд░реНрд╕ рдвреВрдВрдвреЗ рдФрд░ рд╣рд░ рдЯреЗрдмрд▓ рд░реЛ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдмрджрд▓ рджреЗред рдкрд╣рд▓реЗ,re.compile()рдореЗрдВ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рдХреЗ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрдореНрдкрд╛рдЗрд▓ рдХрд░реЗрдВред рдбреЙрдЯ, рд╕реНрдЯрд╛рд░ рдФрд░ рдкреНрд░рд╢реНрдирдЪрд┐рд╣реНрди (.*?) рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрдВрдЧрд▓ рдмреНрд░реИрдХреЗрдЯ, рдЙрд╕рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА, рдФрд░ рдлрд┐рд░ рд╕рдорд╛рдкрди рдПрдВрдЧрд▓ рдмреНрд░реИрдХреЗрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред рдпрд╣ рдиреЙрди-рдЧреНрд░реАрдбреА рдврдВрдЧ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдореИрдЪ рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╕рдВрднрд╡ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдпрджрд┐ рдЖрдк рдкреНрд░рд╢реНрдирдЪрд┐рд╣реНрди рд╣рдЯрд╛ рджреЗрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдУрдкрдирд┐рдВрдЧ рдПрдВрдЧрд▓ рдмреНрд░реИрдХреЗрдЯ рдФрд░ рдЖрдЦрд┐рд░реА рдХреНрд▓реЛрдЬрд╝рд┐рдВрдЧ рдПрдВрдЧрд▓ рдмреНрд░реИрдХреЗрдЯ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рд╛рд░рд╛ рдЯреЗрдХреНрд╕реНрдЯ рдореИрдЪ рдХрд░реЗрдЧрд╛ред рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрдореНрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкre.sub()рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрди рд╕рднреА рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЦреЛрдЬрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореИрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдкреВрд░рд╛ рдХреЛрдб рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд░реЛ рдХреЗ html рдЯреИрдЧреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрдЕрдЧрд▓рд╛ рдЪрд░рдг рд╕реВрдЪреА рдХреЛ рдбреЗрдЯрд╛реЮреНрд░реЗрдо рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ рдФрд░ Pandas рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ 10 рд░реЛ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рджреГрд╢реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред