2016-10-04 3 views
-1

(span class = 'Number')에서 스크랩하려고합니다. 이 코드는 내가 스크랩하고있는 페이지에서 다음과 같이 보입니다 :br 태그 사이 beautifullsoup

<div id="DetailMainBox"> 
<table> 
<tr> 
<td rowspan="2" class="styleA"> 
<span class="UP">99&nbsp;</span><span class="Change">10.00 (-0.1%)</span> 
<span class="Portfolio"><a href="../../members/index.php" class="ThemeColor" target="_blank">Menu<img src="../images/more.gif" width="11" height="11" border="0" align="absmiddle" /></a></span> 
</td> 



<td class="styleB">Max Quantity<span class="RT"></span><br> 
<span class="Number">100.000</span></span> </td> 

<td class="styleB">Average Quantity<span class="RT"></span><br /> 
<span class="Number">822</span></td> 

<td class="styleB">Previous Order<br /> 
<span class="Number">96</span></td> 

<td class="styleB">Max Price<br /> 
<span class="Number">104</span></td> 

<td class="styleB">Number of Trades<br /> 
<span class="Number">383</span></td> 
</tr> 

<tr> 
<td class="styleB">Min Price<span class="RT"></span><br> 
<span class="Number">59</span></td> 

<td class="styleB">Total Amount<span class="RT"></span><br /> 
<span class="Number">800</span></td> 

<td class="styleB">Start<br /> 
<span class="Number">10</span></td> 

<td class="styleB">Low<br /> 
<span class="Number">98 </span></td> 

나는 데이터를 긁어 내기 위해 Beautifulsoup를 사용하려고했습니다. 그러나, 나는 다음과 같이 내가 번호를 검색 할 수 바라고

from bs4 import BeautifulSoup 

html = response.content 
soup = BeautifulSoup(html,"html.parser") 
title = soup.select('td.styleB')[0].next_sibling 
title1 = soup.find_all('span', attrs={'class': 'Number'}).next_sibling 
print(title1) 

화면에 아무 것도 반환하지 않습니다 : 최대 수량 : 100 평균 수량 : 822 이전 주문 : 96 최대 가격 : 104 수 거래 : 383 최소 가격 : 59 총 금액 : 800 시작 : 10 낮음 : 98

쿼리를 처리에서 내 코드에 문제가 무엇인지 알려 주시기 바랍니다. 다음과 같이

+0

태그 텍스트 try tag.string 시도하십시오 –

답변

1

가능한 솔루션입니다 주셔서 감사합니다 - 더 BS4 파고, 당신은보다 효율적이고 우아한 해결책을 얻을 수 있습니다

from bs4 import BeautifulSoup 

soup = BeautifulSoup(open("bs4_test.html"), "html.parser") 
tds = soup.select('td.styleB') 
for td in tds: 
    num = td.select('span.Number') 
    for i in num: 
     print ("{0} : {1}".format(td.next_element, i.string)) 

bs4_test.html 당신이 공유 HTML입니다 - 위의 라인 출력 :

Max Quantity : 100.000 
Average Quantity : 822 
Previous Order : 96 
Max Price : 104 
Number of Trades : 383 
Min Price : 59 
Total Amount : 800 
Start : 10 
Low : 98 

참고 용 bs4_test.html :

01,231,992,657,716,384,894,772,999,321 0
+0

당신이 질문에 대한 답변입니다 - 만약 당신이 뭔가 새로운/다른 질문을 게시 할 별도의 질문으로 –