0

mechanize を使用するのはこれが初めてで、mechanize でフォームに入力しようとしています

ブラウザのオプションは次のとおりです。

br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)


cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)


br.addheaders = br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-    US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

フォームに有効な値を入力して br.submit() を押しましたが、HTTP: エラー 500: 内部サーバー エラーが表示されます。ボットか何かが送信にヒットしたことを検出していると思いますか?しかし、私はそれが addheaders が処理することになっていると考えました。

4

1 に答える 1

1

http://grablib.org/docs/を使用できます。これははるかに簡単で効率的です。それを試してみてください。Linux にインストールします。

pip install pycurl lxml

pip インストールグラブ

from grab import Grab

g = Grab()
g.go('http://google.com') # go to google.com
g.choose_form(0)  #form number
g.set_input('q', 'test')  # 'q'-input name, 'test' - search query
g.submit()  # send request
print g.xpath_list('//a/text()') # view xpath result link list 

私の英語でごめんなさい。

于 2013-03-14T23:42:16.043 に答える