私はテキストボックスに何かを書き込むプログラムを作成したいと思います(例えば、Google検索バー)。しかし、私はurllibでそれを行う方法を知らない。これはそれが必要とするものです: 1 - ページを取得し、ボックスを見つけます。 2 - 何かをボックスに書き込みます。 3 - それを掲示し、結果を与える。ウェブサイトに何かを投稿する
私は、ボックスを見つけて投稿する方法の例、完全なコードはほしくありません。
今すぐ全員に感謝します。
私はテキストボックスに何かを書き込むプログラムを作成したいと思います(例えば、Google検索バー)。しかし、私はurllibでそれを行う方法を知らない。これはそれが必要とするものです: 1 - ページを取得し、ボックスを見つけます。 2 - 何かをボックスに書き込みます。 3 - それを掲示し、結果を与える。ウェブサイトに何かを投稿する
私は、ボックスを見つけて投稿する方法の例、完全なコードはほしくありません。
今すぐ全員に感謝します。
私はurllibでそれを行う方法を説明しますが、あなたの質問を解決するために私が推奨する他のライブラリがあります。
urllibを使用する場合、POST要求をリバースエンジニアリングするには、フォームのaction属性を調べる必要があります。次に、このコードでは、そのPOSTを複製することができます。コードの
import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
'location' : 'Northampton',
'language' : 'Python' }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
出典:This answer
私が述べたように、この問題のためにurllibはする簡単な代替があるが。私は個人的にRoboBrowserまたはMechanicalSoupを使用することをお勧めします。彼らはあなたのためのPOST要求を把握するので、より簡単です。
RoboBrowser使用例:
# Browse to the website
browser = RoboBrowser()
browser.open('http://website.com/')
# Find the form, write on a text box, and submit it
form = browser.get_form(action='/search')
form['q'].value = 'your text'
browser.submit_form(form)
唯一の問題は、彼らは特に、動的なもので、すべてのウェブサイト上で動作しないということです。したがって、これらのソリューションがうまくいかない場合は、Seleniumを使用することで回避できます。 Seleniumは実際のブラウザを自動化するため、Webサイトの動的部分(JavaScriptなど)をすべて読み込みます。問題は自分のリクエストを行うことが遅いということです.Seleniumを試す前にRoboBrowserまたはMechanicalSoupを使うことをお勧めします。
お手伝いをありがとう、私は今すぐこれを試します:) – deniz07
幸運!それがうまくいけば、答えを受け入れてください:https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –