私はいくつかのウェブスクレイピングを行おうとしていますが、これには、次のような複数選択ボックス リストを含むフォームを送信する必要があります。
<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
誰かが助けてくれるなら、私はこれらすべてにアプローチする方法について少し迷っています