3

私はいくつかのウェブスクレイピングを行おうとしていますが、これには、次のような複数選択ボックス リストを含むフォームを送信する必要があります。

<select name="multipleSelectForm" multiple="multiple" size="5">
    <option value="value1">value1</option>
    <option value="value2">value2</option>
</select>

ここで、pycurl を使用して value1 と value2 の両方を送信します。たとえば、次のようになります。

import urllib
import pycurl

c = pycurl.Curl()

data = {'multipleSelectForm':'value1',
        'multipleSelectForm':'value2'}

c.setopt(c.URL, 'http://www.example.com')

c.setopt(c.POST, 1)
post = urllib.urlencode(data)
c.setopt(c.POSTFIELDS, post)

c.perform()

これに関する明らかな問題は、multipleSelectForm を複数回送信していることです。要求されたページはおそらく個々の変数だけでなく、複数のSelectForm配列を探していると確信しています(これは単なる推測であり、実際にはわかりません)。したがって、受信したPOSTデータは正しくありません。

Google Chrome の開発ツールを使用して、それが行っていることのトラフィックを確認してみました。フォーム データを見ると、次のようになりました。

multipleSelectForm:value1
multipleSelectForm:value2

誰かが助けてくれるなら、私はこれらすべてにアプローチする方法について少し迷っています

4

1 に答える 1