4

私はいくつかのWebスクレイピングを行っており、JavaScriptリンクをクリックする必要があり、Pythonと機械化の方法を理解できないことを除いて、プロジェクトはほぼ完了しています。

ページの 1 つで、JavaScript リンクのリストが表示され、それらを順番にたどり、データをスクレイピングして繰り返したいと思います。mechanize が javascript で動作しないことは知っていますが、回避策を知っている人はいますか? リンクを分離するために使用するコードは次のとおりです。

for Auth in iterAuths:
     Auth = str(Auth.contents[0]).strip()
     br.find_link(text=Auth)

するとbr.follow_link(text=Auth)、エラーが発生しますurllib2.URLError: <urlopen error unknown url type: javascript>

もしそうならprint br.click_link(text=Auth')、それは次のように印刷されますRequest for javascript:SendThePage('5660')

JavaScriptリンクを通過するだけです。誰でも助けることができますか?

4

1 に答える 1

2

似たようなことをする必要があるときは、たどろうとしていたリンクを調べました。

それらのいくつかは、javascript で生成された静的リンクでした。それらは十分に予測可能で一貫性があり、事前にリストを手動で生成できました。

その他は、パラメーターを使用して URL を構成しただけです。これらも事前に分析して Python 側で生成し、「このリンクをクリック」する代わりにリクエストとして渡すことができます。

実際に JavaScript を実行する必要がある場合は、PyV8 + Mechanize ハイブリッドを実行できます。私はこれで少し遊んでいて、かなりクールに見えます。PyV8 は、Python と V8 Javascript エンジンを橋渡しして、JS 環境を作成し、任意のコードを実行できるようにします。2 つの言語の間を行き来するのは素晴らしい仕事です。

サンプル コードはありませんが、これら 3 つの解決策のいずれかでうまくいくでしょう :) 頑張ってください!

于 2013-09-15T07:36:10.843 に答える