2017-04-04 7 views
0

私はグループンコマースのインターフェイスサイト(売り手)で毎日行う作業を自動化するPythonスクリプトを書こうとしていますが、私はデータを掻き集めるために何かを書こうとしています。BeautifulSoup:同じURLのjvectorマップをクリックした後にのみHTMLをスクラップすることができます

しかし、ログインする必要がある国を選択するには、login pageにアクセスするために地域をクリックする必要があるjvectorマップが表示されます。

このページを右クリックするとソースは表示されますが、クリックする国の要素を調べることはできます。

誰でも正しい方向に私を指揮してください。

ありがとうございました。

答えて

0

マップのコードは、AJAXを使用してレンダリングされているため、ページソースでは使用できません。

ヘッドレスブラウザ(PhantomJSなど)とSelenium(DOMを操作する)の組み合わせを使用して、ウェブサイトをスクラブできます。あなたはどの国に要素を検査]をクリックすると

あなたはそれぞれの国のコードは「D」と「データコード」属性を除いて同じです。この

<path d="M384.26,87.96l-0.51,2.35l0.08,0.28l2.61,2.58l-2.99,2.83l- 
7.16,2.72l-2.08,0.7l-9.51,-1.71l1.89,-1.36l-0.07,-0.53l- 
4.4,-1.59l3.33,-0.59l0.25,-0.32l-0.11,-1.2l-0.25,-0.27l- 
4.82,-0.88l1.38,-2.2l3.54,-0.57l3.8,2.74l0.33,0.01l3.68,-2.18l3.02, 
1.12l0.25,-0.02l4.01,-2.18l3.72,0.27Z" data-code="IS" fill="#dadada" 
fill-opacity="1" stroke="none" stroke-width="0" stroke-opacity="1" 
fill-rule="evenodd" class="jvectormap-region jvectormap-element"> 
</path> 

のようなコードが表示されます。これらはいずれも各国固有のものです。このユニークな属性を使用してエレメントを見つけるには、selenium webdriverを使用してから、clickメソッドを使用してログインページに移動します。私はWebサイトの残りの部分もAJAXのものを読み込むので、ユーザログインをシミュレートするためにSelenium、PhantomJS、BeautifulSoupの組み合わせに固執することができると思います(あなたの資格情報を使って、私はそれを試みることができませんでした)あなたが必要とする結果は何でも。

ご希望の場合は、これを参考にしてください。

BONUS:「D」のそれらの値は、リンクにも、ヒントについてread this

+0

感謝の意味属性を理解するために。私はセレンの運転手にいくつかの問題を抱えていた、病気に別の亀裂がある。 :) –

関連する問題