Я скачал несколько HTML-файлов, которые хочу проанализировать. Я был в состоянии разобрать файлы, но теперь я хочу сделать несколько списков, чтобы я мог составить точечный график. Я совершенно новичок в Python, поэтому я не уверен, как превратить их в списки.
Я попытался установить переменную, равную тексту, который я получил из столбца.
for y in range (1977, 2020, 1):
tmp = random.random()*5.0
print ('Sleep for ', tmp, ' seconds')
time.sleep(tmp)
url = 'https://www.basketball-reference.com/teams/IND/'+ str(y) +'_games.html'
print ('Download from :', url)
#dowlnload
req = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
html = urlopen(req).read()
fileout = 'YEARS/'+str(y)+'.html'
print ('Save to : ', fileout, '\n')
#save file to disk
f = open(fileout,'w')
f.write(html.decode('utf-8'))
f.close()
#parse
for year in range (1977, 2019, 1):
filein = 'YEARS/' + str(year) + '.html'
soup = BeautifulSoup(open(filein), 'lxml')
entries = soup.find_all('tr', attrs={'class' : ''})
for entry in entries:
#print entry
columns = entry.find_all('td')
if len (columns)>4 :
#print ('C0: ', columns[4])
where = columns[4].get_text()
#print ('C1: ', columns[5])
opponent = columns[5].get_text()
#print ('C2: ', columns[6])
WL = columns[6].get_text()
#print ('C3: ', columns[8])
PacerScore = columns[8].get_text()
#print ('C4: ', columns[9])
OpponentScore = columns[9].get_text()
tt = where+'|::|'+opponent+'|::|'+WL+'|::|'+PacerScore+'|::|'+OpponentScore
print (tt)
x = PacerScore
y = OpponentScore
plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()
Я тоже пытался использовать read_html от панд, но я что-то напортачил и не смог заставить его работать. Он продолжал говорить мне, что функция не найдена.
#parse
for y in range (1977, 2019, 1):
filein = 'YEARS/' + str(y) + '.html'
soup = BeautifulSoup(open(filein), 'r')
table = BeautifulSoup(open('YEARS/' + str(y) + '.html','r').read()).find('table')
df = pd.read_html(table)
Любой совет или указатели будут с благодарностью.