2016-06-05 4 views
0

안녕하세요 저는 Python을 처음 사용하고 있으며 웹 페이지에서 데이터를 추출하는 프로그램을 작성하고 있습니다.Python WebScrapping 목록 조작

carTypeWeb = soup.find_all("span", {"class":"h3"}) 

나는 다음과 같은 출력 얻을 :이 검색 라인

> [<span class="h3">BMW 420d Gran Coupe M-Sportpaket DIEBSTAHLSCHADEN 
> !!</span>, <span class="h3 u-block">25.950 \u20ac</span>, <span 
> class="h3">BMW 420d Coupe Sport Line,Xenon,Navi,M-Tech,19 Zoll</span>, 
> <span class="h3 u-block">26.795 \u20ac</span>,.....] 

지금 라인 1 위의 복사 예제 (목록에있는 모든 두 번째 항목을 삭제)를 고민 오전 3) b) 위의 2와 4와 같은 행에 대해서는 목록의 숫자 값 (예 : 가격 25950과 26795) 만 가져야합니다.

미리 도움을 주셔서 감사합니다. 나는 대단히 감사한다!

+0

주변 HTML의 나머지 부분은 어떻게 생겼습니까? –

답변

0

당신은 당신의 코드를 변경하지 왜 다른 모든 라인을 원하는 경우 :

carTypeWeb = soup.find_all("span", {"class":"h3 u-block"}) 
+0

대단히 감사합니다. 당신의 도움으로 제 문제를 해결할 수있었습니다! – Fabian

-1

을 당신은 같은 것을 할 수있는 : 위의 코드에서

# To read only alternate items of list starting from item 2 

for i in range(1, len(carTypeWeb), 2): 
    price = (carTypeWeb[i].text).split(' ')[0].replace('.','') 

.textspan을 사이에 내용을 추출 태그 다음 .split[0], 공간에서 콘텐츠를 분할하고 0 번째 부분은 : \u25.950을 제공합니다. 어떤 공간 문자열에서 .를 교체 그 후

당신을 제공합니다 이 \u25950

그런 다음 당신은 할 수있는, eval(price) 정수로 문자열을 변환 할 수 있습니다. 도움이되기를 바랍니다.

+0

대단히 감사합니다. 당신의 도움으로 제 문제를 해결할 수있었습니다! – Fabian

+0

위의 대답으로 문제를 해결할 수 있었다면 대답으로 표시하십시오. 또는 특정 부분을 사용했다면 특정 솔루션으로 답변을 작성할 수도 있습니다. –