Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)

不言
풀어 주다: 2018-09-28 14:14:57
앞으로
8222명이 탐색했습니다.

이 글의 내용은 웹 페이지에 js가 추가한 콘텐츠(코드)를 Python이 크롤링하는 방법에 대한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

웹페이지를 크롤링할 때 특정 규칙을 사용하여 반환된 HTML 데이터에서 효과적인 정보를 추출합니다. 하지만 웹 페이지에 JavaScript 코드가 포함되어 있는 경우 원본 데이터를 얻으려면 렌더링 처리를 거쳐야 합니다. 이 시점에서 여전히 기존 방법을 사용하여 데이터를 긁어낸다면 아무 것도 얻지 못할 것입니다. 그런데 이 문제는 웹킷(Web Kit)을 통해 쉽게 해결할 수 있습니다. 웹 키트는 브라우저가 할 수 있는 모든 것을 할 수 있습니다. 일부 브라우저의 경우 웹 키트가 기본 웹 페이지 렌더링 도구입니다. 웹 키트는 QT 라이브러리의 일부이므로 QTPyQT4 라이브러리가 설치되어 있으면 직접 실행할 수 있습니다. QT库的一部分,因此如果你已经安装QTPyQT4库,那么你可以直接运行之。

1、环境准备

Linux:sudo apt-get install python-qt4

Windows:

第一步:下载.whl,地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4,这里可以下载不同的python版本对应的包。

Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)

第二步:选择一个目录,将下载好的文件放到该目录下,然后cmd下,cd进入该目录,执行命令:pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl,完成安装。

Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)

第三步:校验是否安装成功。

Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)

Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)

2、解决方案

首先通过 Web kit 发送请求信息,然后等待网页被完全加载后将其赋值到某个变量中。接下来我们利用lxml

1. 환경 준비

Linux: sudo apt- Python 설치-qt4

#🎜 🎜#Windows:

#🎜🎜#1단계: .whl을 다운로드하고 주소: https: //www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4,여기에서 다양한 Python 버전에 해당하는 패키지를 다운로드할 수 있습니다. #🎜🎜##🎜🎜#1244179- 20180928102513882-1468011486.png#🎜🎜##🎜🎜#2단계: 디렉토리를 선택하고, 다운로드한 파일을 디렉토리에 넣은 다음 cmd, cd를 디렉토리에 넣고 다음 명령을 실행합니다: pip install PyQt4 -4.11.4 -cp36-cp36m-win_amd64.whl, 설치를 완료합니다. #🎜🎜##🎜🎜#1244179- 20180928102844506-853872318.png#🎜🎜##🎜🎜#3단계: 설치가 성공했는지 확인합니다. #🎜🎜##🎜🎜#1244179- 2018092810305384-1698287270.png #######Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드) #🎜🎜#

2. Solution

#🎜🎜#먼저 웹킷을 통해 요청 정보를 보낸 후, 완전히 로드될 웹페이지를 변수에 할당합니다. 다음으로 lxml을 사용하여 HTML 데이터에서 유효한 정보를 추출합니다. 이 과정은 시간이 걸립니다. #🎜🎜#
import sys
from PyQt4.QtWebKit import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *

class Render(QWebPage):  # 用来渲染网页,将url中的所有信息加载下来并存到一个新的框架中
    def __init__(self,url):
        self.app = QApplication(sys.argv)
        QWebPage.__init__(self)
        self.loadFinished.connect(self._loadFinished)
        self.mainFrame().load(QUrl(url))
        self.app.exec_()
    def _loadFinished(self, result):
        self.frame = self.mainFrame()
        self.app.quit()

url = 'http://jandan.net/ooxx'
r = Render(url)
html = r.frame.toHtml()
print(html)
로그인 후 복사
#🎜🎜# 그럼 다음 작업은 HTML 코드를 파싱하는 작업인데 여기서는 설명하지 않겠습니다. #🎜🎜#

위 내용은 Python이 웹 페이지에서 js에 의해 추가된 콘텐츠를 크롤링하는 방법(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!