이번에는 Python에서 ExecJs 문을 실행하는 방법과 Python에서 ExecJs 문을 실행할 때 주의사항이 무엇인지 보여드리겠습니다. 다음은 실제 사례입니다.
execjs 모듈
일상적인 웹 페이지 데이터 추출 과정에서 일부 유용한 정보가 웹 페이지의 소스 코드에 json 형식으로 저장되는 경우가 많습니다. 이때 이러한 데이터를 정기적으로 추출하려면 다음을 수행할 수 있는 패키지가 필요합니다. Parse js 예, execjs는 간단하고 사용하기 쉬운 API를 제공합니다
pip를 사용하여 설치:
pip install PyExecJS
easy_install을 사용하여 설치:
easy_install PyExecJS
사용
웹 사이트 페이지 예를 들어, 소스 코드에 이러한 섹션이 있습니다
우리의 목표는 그림에서 json 데이터를 추출하는 것입니다. 코드는 다음과 같습니다.
import requestsimport reimport execjsfrom lxml import etree url = ' https:// www.madewell.com/cn/madewell_category/SHIRTSTOPS/topsblouses/PRDOVR~F9375/F9375.jsp'res = requests.get(url) doc = etree.HTML(res.text)#s_text = doc.xpath('//script/text()')#def f(var,text):# if var in text:# return True# return False#data = filter(partial(f,"var data"),s_text)[0]data = ''.join(doc.xpath('//script[contains(text(),"var data")]/text()')) json_raw = re.search('({[\S\s]*\})',data).group(1) jsn = execjs.eval(json_raw) print (jsn)
실행 결과는 다음과 같습니다.
Extension
일부 데이터에서는 시뮬레이션된 브라우저가 추출에 사용됩니다. 일반적으로 우리는 Selenium이나 다른 웹킷 패키지를 사용하지만, 일반 시뮬레이션 패키지는 렌더링된 페이지만 반환하는 것만으로는 충분하지 않습니다. . 또한 js를 실행하고 js와 dom 사이의 상호 작용을 제어할 수 있어야 합니다. 관심 있는 학생들은 PyV8 및 w3c 패키지를 살펴보세요.
이 사례를 읽은 후 방법을 마스터했다고 생각합니다. PHP 중국어 웹사이트의 다른 관련 기사도 주목해 보세요!
관련 읽기:
vue 홈페이지에서 하단 탐색 TabBar를 만드는 방법
위 내용은 Python에서 ExecJs 문을 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!