웹 페이지에서 데이터를 추출하려고하는데 위 오류가 계속 발생합니다. 나는이 사이트의 예제뿐만 아니라 다른 것을 보았지만 문제는 직접적으로 다루지 않았다.AttributeError : 'ResultSet'객체에 'find_all'속성이 없습니다. - pd.read_html
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = 'http://www.espn.com/nhl/statistics/player/_/stat/points/sort/points/year/2015/seasontype/2'
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, "lxml")
table = soup.find_all('table', class_='dataframe')
rows = table.find_all('tr')[2:]
data = {
'RK' : [],
'PLAYER' : [],
'TEAM' : [],
'GP' : [],
'G' : [],
'A' : [],
'PTS' : [],
'+/-' : [],
'PIM' : [],
'PTS/G' : [],
'SOG' : [],
'PCT' : [],
'GWG' : [],
'G1' : [],
'A1' : [],
'G2' : [],
'A2' : []
}
for row in rows:
cols = row.find_all('td')
data['RK'].append(cols[0].get_text())
data['PLAYER'].append(cols[1].get_text())
data['TEAM'].append(cols[2].get_text())
data['GP'].append(cols[3].get_text())
data['G'].append(cols[4].get_text())
data['A'].append(cols[5].get_text())
data['PTS'].append(cols[6].get_text())
data['+/-'].append(cols[7].get_text())
data['PIM'].append(cols[8].get_text())
data['PTS/G'].append(cols[9].get_text())
data['SOG'].append(cols[10].get_text())
data['PCT'].append(cols[11].get_text())
data['GWG'].append(cols[12].get_text())
data['G1'].append(cols[13].get_text())
data['A1'].append(cols[14].get_text())
data['G2'].append(cols[15].get_text())
data['A2'].append(cols[16].get_text())
df = pd.DataFrame(data)
df.to_csv("NHL_Players_Stats.csv")
나는 오류가 테이블에 (즉, 결과 집합) 메소드 find_all을 가지고 있지를 언급했다 및 코드는 다음 줄을 주석에 의해 실행되었다 있음을 확인하여 오류를 근절 한 아래 코드를 참조하십시오 :
#rows = table.find_all('tr')[2:]
이 변경
는 :for row in rows:
이, 그러나 웹 페이지에서 데이터를 추출하지 않고 단순히 열 헤더와 .csv 파일을 만듭니다.
soup.find_all을 사용하여 일부 데이터를 행에 직접 추출하려고 시도했지만 다음 오류가 발생합니다.
data['GP'].append(cols[3].get_text())
IndexError: list index out of range
나는 해결할 수 없었습니다.
따라서 모든 도움을 주시면 감사하겠습니다. 나 또한이 시도했기 때문에
dataframe = pd.read_html('url')
하지만 유지 유지 : 이것이 이상적으로
FeatureNotFound: Couldn't find a tree builder with the features you
requested: html5lib. Do you need to install a parser library?
을
또한, 호기심, 사용하여 원하는 결과를 달성하기 위해 어떤 방법이있다 방법을 선호하지만, 온라인으로 예제를 찾을 수 없습니다.
[html5lib] (https://pypi.python.org/pypi/html5lib)를 찾을 수 없습니까? 글쎄, 나중에 가자. – TemporalWolf
@TemporalWolf, 맞아. 그러나, BeautifulSoup() 메서드로 사용할 때 찾은 것 같습니다. 어떤 제안? :) – aLoHa