파이썬 테이블의 내용 뽑아오기
조회수 2103회
먼저 간단한 구문을 통해서
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
html = urlopen('http://blah blah.....')
bs = BeautifulSoup(html.read(), 'html.parser')
tx = bs.find_all('', 'td00')
아래와 같은 태그를 얻어 왔습니다.(대충 뽑아올 내용만 가져오는 것을 보여주는 코드)
<table id="td" class="td00">
<tbody>
<tr bgcolor="#CCCCCC">
<td class="text04">No</td>
<td class="text04">Product</td>
<td class="text04">Stock</td>
<td class="text04">Code</td>
<td class="text04">Price</td>
<td class="text04">HS.Price</td>
<td class="text04">QTY</td>
</tr>
<tr bgcolor="#EEEEEE">
<td class="text04"><font color="#3300CC">01</font></td>
<td class="text04">2500DXG S LEFT<font color="#3300CC"></font></td>
<td class="text04">Available</td>
<td class="text04"><a href="#" onclick="window.open ('http://fservice.shimano.co.jp/part/pdf/03425.pdf', 'goodsInfos', 'resizable=yes, scrollbars=yes')" title="MakerParts">03425 0</a></td>
<td class="text04">96,000</td>
<td class="price_orange"><b>814,000</b></td>
<td height="1" align="left"></td>
</tr>
repeat one more like above <tr>
</tr>
</tbody>
위의 테이블에서 아래와 같은 내용으로 뽑아오길 원하는데 아무리 해봐도 다 실패로 돌아갑니다. 텍스트로 뽑아는 와지는데 구문이 깨어지거나, 또 앞선 질문에서 한분이 알려주신대로 해봐도 결국은 실패...
01 | 2500DXG S LEFT | Available | http://....pdf | 96,000 | 814,000
02 | 3000 S LEFT | Available | http://....pdf | 86,000 | 814,000
......
아래는 제가 사용해본 코드입니다. 초보라서 너무 어렵기만 합니다. 혹시 위의 내용처럼 뽑아오기 위해서 도움 좀 주실 분 계실까요? 약 1000여개의 페이지에서 동일한 내용을 뽑아와야하는데 일주일째 어렵군요. 페이지 돌면서 뽑아오는 것은 구글링을 통해서 가능할 것 같은데, 위의 테이블에서 제가 원하는 양식대로 뽑아오는게 계속 실패라서 도움을 좀 부탁드립니다.
# 에피소드 리스트를 만든다 >> 이것은 최종 출력할 때 이것을 돌면서 각 줄을 뿌려주기 위함이다.
episodes = []
# 에피소드의 내용이 담긴 태그들을 뽑아낸다.
table = bs.find('table', class_='td00')
for row in table.find_all('tr'):
values = []
for col in row.find_all('td'):
text = col.get_text()
rp_text = text.replace('(?<!\x0d)\x0a',' ')
values.append(rp_text)
if values:
episodes.append(values)
del episodes[0]
for episode in episodes:
print(episode)
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력