Django を使用してブックマーク アプリに取り組んでおり、javascript を使用してタイトルを生成する Web ページからタイトルを抽出したいと考えています。私は風車を見て、動作するセレンをインストール/実行しましたが、これらのツールは、Web ページのタイトルを取得するために必要なもの以上のものだと思います。現在 spynner を使用しようとしていますが、ページが完全にレンダリングされた後にコンテンツを取得できませんでした。ここに私が現在持っているコードがあります...
from spynner import Browser
from pyquery import PyQuery
browser = Browser()
browser.set_html_parser(PyQuery)
browser.load("https://www.coursera.org/course/techcity")
Python シェルで最後の行を実行すると、SpynnerTimeout: Timeout reached: 10 seconds エラーが発生します。最後のステートメントを再度実行すると、True が返されますが、javascript が実行される前のページのみが返され、「正しい」ページ タイトルがありません。私も次のことを試しました:
browser.load("https://www.coursera.org/course/techcity", wait_callback=wait_load(10))
browser.soup("title")[0].text
しかし、これは間違ったタイトル「Coursera.org」も返します (つまり、javascript が実行される前のタイトル)。
ここに私の質問があります:
- 他のpythonツール/ライブラリを使用して、JavaScriptで動的に生成されたWebページのタイトルを抽出するためのより効率的な推奨アプローチはありますか? もしそうなら、その推奨されるアプローチは何ですか?- サンプルコードを歓迎します。
- スピナーを使用することが良いアプローチである場合、ページが読み込まれた後、またはタイトルが JavaScript によってレンダリングされた直後に、タイトルを取得するにはどうすればよいでしょうか。私が今持っているコードは、ブログ投稿からつなぎ合わせて、github の spynner のソースを調べたものです。