PyQt QWebPage로 여러 URL 스크랩
PyQt의 QWebPage는 웹페이지를 렌더링하는 수단을 제공하므로 동적으로 로드되는 콘텐츠에 적합합니다. 그러나 여러 렌더링을 시도하면 충돌이 발생하거나 예상치 못한 동작이 발생할 수 있습니다.
문제 식별
제공된 코드의 문제는 각각에 대해 여러 QApplication 및 QWebPage를 생성하는 데서 발생합니다. URL 가져오기. 대신, 웹페이지가 loadFinished 신호에 의존하여 후속 URL의 내부 처리를 트리거하는 각 인스턴스의 단일 인스턴스를 활용해야 합니다.
해결책
다음 개선 사항은 다음과 같습니다. 문제:
사용
향상된 웹페이지 사용 방법을 보여주는 예제 코드:
def my_html_processor(html, url): print('loaded: [%d chars] %s' % (len(html), url)) import sys app = QApplication(sys.argv) webpage = WebPage(verbose=False) webpage.htmlReady.connect(my_html_processor) # example 1: process list of urls urls = ['https://en.wikipedia.org/wiki/Special:Random'] * 3 print('Processing list of urls...') webpage.process(urls) # example 2: process one url continuously import signal, itertools signal.signal(signal.SIGINT, signal.SIG_DFL) print('Processing url continuously...') print('Press Ctrl+C to quit') url = 'https://en.wikipedia.org/wiki/Special:Random' webpage.process(itertools.repeat(url)) sys.exit(app.exec_())
참조
위 내용은 PyQt QWebPage를 사용하여 여러 URL을 효율적으로 스크랩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!