私は http が初めてで、助けが必要です。クレイグリストの検索フォームに入力して、フォームに手動で入力した場合に通常表示されるページへのリンクを取得しようとしています。ソースを表示すると、次のフォームが見つかりました。
<form id="search" action="/search/" method="GET">
<div>search craigslist</div>
<input type="hidden" name="areaID" value="372">
<input type="hidden" name="subAreaID" value="">
<input id="query" name="query" autocorrect="off" autocapitalize="off"><br>
<select id="catAbb" name="catAbb">
<option value="ccc">community</option>
<option value="eee">events</option>
<option value="ggg">gigs</option>
<option value="hhh">housing</option>
<option value="jjj">jobs</option>
<option value="ppp">personals</option>
<option value="res">resumes</option>
<option value="sss" selected="selected">for sale</option>
<option value="bbb">services</option>
</select>
<input id="go" type="submit" value=">">
</form>
そこで、フォームに記入するために次のコードを書きました。
import urllib,httplib
conn = httplib.HTTPConnection("auburn.craigslist.org")
params = urllib.urlencode({'query': 'english tutor', 'catAbb': 'bbb'})
conn.request("GET","/search",params)
response = conn.getresponse()
print response.read()
たとえば、入力するフォームを指定するにはどうすればよいですか? フォームの「action」と同じように「\search」を指定することによるものだと思い込んでいたのですが、本当に httplib.request の「url」引数にあるのでしょうか? とにかく、目的の結果ページへの URL を取得する代わりに、次の HTML ページを取得します。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>auburn craigslist search</title>
<blockquote>
<b>You did not select a category to search.</b>
</blockquote>
しかし、私はカテゴリを選択したと確信しています。私は何をすべきか?ありがとう!