2

테이블에서 테이블 내에서 테이블을 분석하려고 : 나는 시도했다나는이 주소 구문 분석하려고 해요

import urllib 
import urllib.request 
from bs4 import BeautifulSoup 

url=('http://www.bricklink.com/catalogPriceGuide.asp?P=3005&colorID=1&viewExclude=N&v=P') 
page = urllib.request.urlopen(url) 
soup = BeautifulSoup(page.read()) 
content = soup.find('table') 
price=content.findAll('td') 

print(price) 

이이 코드의 변경을 사용하여

LINK

table, findfindAll의 거의 모든 조합은 가장 왼쪽의 테이블을 뱉어내는 것입니다.

Times Sold: 2958 
Total Qty: 130610 
Min Price: $0.0136 
Avg Price: $0.0690 
Qty Avg Price: $0.0659 
Max Price: $0.3900 

누구나 내가 뭘 잘못하고 올바른 방향으로 나를 가리킬 수 있습니까?

+0

참고 : "* 우리는 당신이 우리의 웹 페이지 또는 포함 된 콘텐츠를 모니터링하거나 복사하는 로봇, 스파이더, 기타 자동 장치 또는 수동 프로세스를 사용하지 않는 것이 요청 여기에 우리의 사전 서면 허가없이. * "- http://www.bricklink.com/help.asp?helpID=139&viewType= –

답변

2

id, class이있는 경우이를 사용하십시오. 그러나 주어진 URL에서는 유용하지 않습니다. id, class.

다음과 같은

를 사용하여 텍스트 텍스트 :

>>> import re 
>>> import urllib.request 
>>> 
>>> from bs4 import BeautifulSoup 
>>> 
>>> 
>>> url = 'http://www.bricklink.com/catalogPriceGuide.asp?P=3005&colorID=1&viewExclude=N&v=P' 
>>> page = urllib.request.urlopen(url) 
>>> soup = BeautifulSoup(page.read()) 
>>> td = soup.find('td', text=re.compile('Times Sold')) 
>>> tr_list = td.parent.parent.find_all('tr') 
>>> for tr in tr_list: 
...  print(' '.join(td.text for td in tr.find_all('td'))) 
... 
Times Sold: 2958 
Total Qty: 130610 
Min Price: $0.01 
Avg Price: $0.07 
Qty Avg Price: $0.07 
Max Price: $0.39 
+0

바로 그 것입니다! 정말 고맙습니다! – user1985351

관련 문제