내가 다음 링크에서 다음 SVG 년대를 긁어하려고 차트의 단어가 필요하지 않습니다 (그래프 자체). 그러나 이전에 svg 이미지를 긁어 본 적이 없으며 가능한 경우 확실하지 않습니다. 둘러 보았지만 직접이 작업을 수행 할 유용한 파이썬 패키지를 찾을 수 없었습니다.스크래핑 SVG 차트
나는 셀레늄을 사용하여 파이썬으로 이미지의 스크린 샷을 찍은 다음 PIL을 사용하여 이미지를 자르고 svg로 저장할 수 있음을 알고 있습니다.하지만이 차트를 가져 오는 더 직접적인 방법이 있는지 궁금합니다. 페이지. 유용한 패키지 또는 구현이 도움이 될 것입니다. 고맙습니다.
편집 : 몇 가지 아래 표를 얻었다 있지만 확실하지 왜 여기에 내가 .. 내 방식을 구현하는 것이 방법이다
import sys
import time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
class Screenshot(QWebView):
def __init__(self):
self.app = QApplication(sys.argv)
QWebView.__init__(self)
self._loaded = False
self.loadFinished.connect(self._loadFinished)
def capture(self, url, output_file):
self.load(QUrl(url))
self.wait_load()
# set to webpage size
frame = self.page().mainFrame()
self.page().setViewportSize(frame.contentsSize())
# render image
image = QImage(self.page().viewportSize(), QImage.Format_ARGB32)
painter = QPainter(image)
frame.render(painter)
painter.end()
print 'saving', output_file
image.save(output_file)
def wait_load(self, delay=0):
# process app events until page loaded
while not self._loaded:
self.app.processEvents()
time.sleep(delay)
self._loaded = False
def _loadFinished(self, result):
self._loaded = True
s = Screenshot()
s.capture('https://finance.yahoo.com/quote/AAPL/analysts?p=AAPL', 'yhf.png')
나는 다음 차트에서 이미지를 취할 PIL에서 자르기 기능을 사용 .
그래서 svg 파일을 가져와 png로 변환하면됩니까? –
당신의 문제는 그 SVG가 자바 스크립트에 의해 생성된다는 것입니다. 모든 솔루션은 HTML을로드 할뿐만 아니라 DOM에서 인라인 SVG를 추출하기 전에 페이지에서 모든 JS를 실행하는 작업을 포함합니다. 간단한 HTML 스크레이퍼는 사용자의 요구를 충족시키지 않습니다. –