2013-11-21 3 views
0

urllib2와 beautifulSoup를 사용하여 https://www.spdrs.com/product/fund.seam?ticker=SPY 웹 사이트를 긁어 내려고합니다. 그러나, 나는 urllib2에서 얻은 html이 완전하지 않다고 생각했다. 아래에 표시된 노드 <span> 사이의 항목은 urllib2에서 읽은 문자열의 일부가 아닙니다.Urllib2 urlopen html 불완전

<span xmlns="http://www.w3.org/1999/xhtml" id="performancePanel"> 
    bunch of divs in here. 
</span> 

왜 이런 경우입니까? 나는 누군가가이 스팬에이 속성을 넣는 것을 본 적이 없기 때문에 그것이 xmlns와 관련이 있다고 생각한다.

+0

언급 한 기간 탭을 볼 수 없습니다. 어쩌면 웹 사이트가 바뀌었을 가능성이 있습니다. 그 태그는 페이지로드 후에 JS에 의해 생성됩니다. – PasteBT

+0

@PasteBT 답장을 보내 주셔서 감사합니다. 콘솔에서 ID를 검색 할 수 있습니다. Chrome을 사용 중이므로 콘솔에서 찾을 수 있습니다. 페이지를로드 한 후 아약스 호출이 표시되지 않습니다. 섹션이 자바 스크립트에 의해 생성되었다고 할 때, 코드의 일부가 자바 스크립트에 하드 코딩되어 DOM로드 후에 삽입된다는 것을 의미합니까? 이게 옳은 것 같지 않아 .. – zsljulius

답변

1

브라우저에서 소스를 보면 urllib과 동일한보기가 표시됩니다.

당신은 다음과 같습니다 볼 수 있습니다

<span id="performancePanel"></span> 

공지 사항을 그 기간에는 div의가없는 방법에 대해 설명합니다. div는 자바 스크립트로 채워집니다. 소스의 바닥을보고 일부 JS 코드와 주석

<!-- load performance and holdings content by ajax --> 

나는 그것이로드되는 곳이라고 생각 볼 수 있습니다.

데이터가 javascript에 의해로드되므로 javascript를 리버스 엔지니어링하지 않고 사용하는 기본 API를 파악한 다음 해당 데이터를 스크랩하지 않는 한 urllib를 통해 긁어 내기가 어려울 수 있습니다.

너무 어려울 경우 셀레늄을 사용하여 조사하여 데이터를 스크래핑 할 수 있습니다.

관련 문제