今回はPythonでExecJsステートメントを実行する方法と、PythonでExecJsステートメントを実行する際の注意事項を紹介します。実際のケースを見てみましょう。
execjs モジュール
Web ページのデータ抽出の日常的なプロセスでは、多くの場合、いくつかの有用な情報が JSON 形式で Web ページのソース コードに保存されます。このとき、これらのデータを定期的に抽出するには、次のようなパッケージが必要です。 parse js はい、execjs はシンプルで使いやすい API を提供します
pip を使用してインストールします:
pip install PyExecJS
easy_install を使用してインストールします:
easy_install PyExecJS
Use
例として、ソースコードにこのようなセクションがあります
私たちの目標は、画像内の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)
実行結果は次のとおりです:
拡張機能
一部のデータでは、抽出にシミュレートされたブラウザが使用されますが、一般的なシミュレーション パッケージはレンダリングされたページのみを返します。場合によっては、動的にレンダリングされたページを返すだけでは十分ではありません。また、js を実行し、js と dom の間の対話を制御できる必要もあります。興味のある学生は、PyV8 および w3c パッケージを参照してください。これらの事例を読んだ後は、方法を習得したと思います。さらに興味深い情報については、こちらをご覧ください。 PHP 中国語 Web サイトの他の関連記事にも注目してください。
関連書籍:
Android 開発で js を操作する方法JS モジュール化 - RequireJSVue ホームページにボトム ナビゲーション TabBar を作成する方法Vue を使ったもの。 js 2.0+で作られたグラファイトドキュメントスタイルのリッチテキストエディタ以上がPythonでExecJsステートメントを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。