2017-11-23 1 views
0

내가 파이썬에 새로 온 사람과 나는 Webpage에 테이블에서 데이터를 얻을 목록에 보내야합니다.파이썬 3 HTML 테이블 데이터

나는 모든 노력을했습니다, 그리고 내가 가진 가장입니다

f = urllib.request.urlopen(url) 
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-enUS.asp?Data=11/22/2017&Data1=20171122&slcTaxa=APR#" 
soup = BeautifulSoup(urllib.request.urlopen(url).read(),'lxml') 
rows=list() 
for tr in soup.findAll('table'): 
    rows.append(tr) 

어떤 제안?

+1

엑셀 파일을 다운로드 할 수있는 옵션이 있습니다. xlsx 파일로 작업하는 것이 좋습니다. 정말 HTML에서 읽어야합니까? – Diego

+0

아니요. xlsx 파일은 정상입니다. – ranthero

답변

1

당신은 멀리 아니에요!

apt-get install python3-bs4 (Ubuntu 또는 Debian을 사용 중이며 Python 3을 실행 중이라고 가정)을 수행하여 BeautifulSoup의 올바른 버전 인 BeautifulSoup4를 가져 오십시오.

그런 다음 td 개의 요소를 html table으로 분리하고 데이터를 약간 정리합니다. 예를 들어 쓸모가 목록의 처음 3 개 요소를 제거하고, 추악한 '\ n을'제거 :

import urllib 
from bs4 import BeautifulSoup 
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-enUS.asp?Data=11/22/2017&Data1=20171122&slcTaxa=APR#" 
soup = BeautifulSoup(urllib.request.urlopen(url).read(),'lxml') 
rows=list() 
for tr in soup.findAll('table'): 
    for td in tr: 
     rows.append(td.string) 
temp_list=rows[3:] 
final_list=[element for element in temp_list if element != '\n'] 

난 당신이 정확하게 추출 할 데이터 모르겠어요. 이제 파이썬리스트 (여기서는 final_list)에 대해 작업해야합니다!

희망이 있습니다.

+0

여기에서 일했습니다. 고맙습니다. – ranthero

1

는 웹 페이지의 끝에서 에디터를 이용해 옵션이 있습니다. 수동으로 파일을 다운로드 할 수 있다면 잘 할 수 있습니다.

자동으로 다른 날짜에 액세스하려면 JavaScript가 있으므로 Selenium을 사용하여 Python을 통해 xlsx 파일을 다운로드하는 것이 좋습니다. XLSX로

당신이 데이터를 읽고 당신이 원하는 것을 할 Xlsxwriter을 사용할 수 있습니다 파일.

+0

셀렌을 공유해 주셔서 감사합니다. – ranthero

관련 문제