다음 코드 (거의)는 각 플레이어 데이터를 쉼표로 구분 된 행으로 스크래핑합니다. 그러나 플레이어 이름에는 하위 행이 별도의 행에 표시되는 것으로 보입니다. 나는 단순히 링크가 아니라 이름의 텍스트를 원한다. 또한 일부 출력은 내 출력에서 반복됩니다. 어떤 도움이라도 대단히 감사하겠습니다! BS4와 Python 3.5를 사용하고 있습니다.BeautifulSoup 긁어 모으기 문제
import urllib
import urllib.request
from bs4 import BeautifulSoup
def make_soup(url):
page = urllib.request.urlopen(url)
soupdata = BeautifulSoup(page, "html.parser")
return soupdata
currentdata = ""
soup = make_soup("http://www.foxsports.com/soccer/stats? competition=1&season=20160&category=STANDARD&pos=0&team=0&isOpp=0&sort=3&sortOrder=0&page=0")
for record in soup.findAll('tr'):
playerdata = ""
for data in record.findAll('td'):
playerdata = playerdata + "," + data.text
currentdata = currentdata + "\n" + playerdata
print(currentdata)
웹 스크래핑에 들어간 경우 [요청] (http://docs.python-requests.org/en/master/)을 확인하십시오. urllib보다 요청을 사용하는 것이 훨씬 간단합니다. –