PythonでExecJsステートメントを実行する方法

php中世界最好的语言
リリース: 2018-03-07 10:10:32
オリジナル
4696 人が閲覧しました

今回はPythonでExecJsステートメントを実行する方法と、PythonでExecJsステートメントを実行する際の注意事項を紹介します。実際のケースを見てみましょう。

execjs モジュール

Web ページのデータ抽出の日常的なプロセスでは、多くの場合、いくつかの有用な情報が JSON 形式で Web ページのソース コードに保存されます。このとき、これらのデータを定期的に抽出するには、次のようなパッケージが必要です。 parse js はい、execjs はシンプルで使いやすい API を提供します

インストール

pip を使用してインストールします:

pip install PyExecJS

easy_install を使用してインストールします:

easy_install PyExecJS

Use

例として、ソースコードにこのようなセクションがあります

PythonでExecJsステートメントを実行する方法

私たちの目標は、画像内の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)
ログイン後にコピー

実行結果は次のとおりです:

PythonでExecJsステートメントを実行する方法

拡張機能

一部のデータでは、抽出にシミュレートされたブラウザが使用されますが、一般的なシミュレーション パッケージはレンダリングされたページのみを返します。場合によっては、動的にレンダリングされたページを返すだけでは十分ではありません。また、js を実行し、js と dom の間の対話を制御できる必要もあります。興味のある学生は、PyV8 および w3c パッケージを参照してください。これらの事例を読んだ後は、方法を習得したと思います。さらに興味深い情報については、こちらをご覧ください。 PHP 中国語 Web サイトの他の関連記事にも注目してください。

関連書籍:

Android 開発で js を操作する方法


JS モジュール化 - RequireJS


Vue ホームページにボトム ナビゲーション TabBar を作成する方法


Vue を使ったもの。 js 2.0+で作られたグラファイトドキュメントスタイルのリッチテキストエディタ

以上がPythonでExecJsステートメントを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート