2

チュートリアルを使用して、グーグル検索からトピックのhtmlページを取得する方法を見つけました。これはチュートリアルで提供されました。

import mechanize
br = mechanize.Browser()
br.open('http://www.google.co.in')
br.select_form(nr = 0)

これまでフォームを取得することを理解していたので、

br.form['q'] = 'search topic'
br.submit()
br.response.read()

これにより、検索トピックに関連するページのhtmlが出力されます。しかし、私の疑問は、br.form[parameter]のこのパラメーターはどうあるべきかということです。Googleニュースで試してみたところ、成功したからです。誰か助けてもらえますか?

4

3 に答える 3

7

これは、ページソースで指定されているフォームフィールドのIDです。

次のように、使用可能なID値を取得できます。

import mechanize

br = mechanize.Browser()
br.open("http://www.google.com/")

for f in br.forms():
    print f

それは私に与えます:

<f GET http://www.google.ca/search application/x-www-form-urlencoded
  <HiddenControl(ie=ISO-8859-1) (readonly)>
  <HiddenControl(hl=en) (readonly)>
  <HiddenControl(source=hp) (readonly)>
  <TextControl(q=)>
  <SubmitControl(btnG=Google Search) (readonly)>
  <SubmitControl(btnI=I'm Feeling Lucky) (readonly)>
  <HiddenControl(gbv=1) (readonly)>>

それは言う:

  1. ページにはフォームが1つだけあります

  2. 非表示のフィールドIDは、ie(ページエンコーディング)、hl(言語コード)、hp(?わからない)、およびgbv(これもわからない)です。

  3. 非表示にされていないフィールドIDはqだけです。これは、検索テキストであるテキスト入力です。

于 2012-06-16T14:26:25.577 に答える
0

http://www.google.co.inリソースを見て ください、それはこのコードを持っています:

<input class="lst lst-tbb" value="" title="Google 搜索" size="41" type="text" 
                       autocomplete="off" id="lst-ib" name="q" maxlength="2048"/> 

name="q"parameterbr.form[ parameter]でを示します

于 2012-06-16T14:28:10.893 に答える
0

パラメータは、文字列で入力するフォーム要素の名前である必要があります。名前は、firebugのようなものを使用してWebページを検査する最も簡単な方法で見つけることができます(つまり、firefoxの場合は、ブラウザーで使用可能なものを使用してください)。ページのソースを確認することもできますが、ページが複雑な場合は面倒です。

たとえば、フォームの名前-これを入力しているボックスの要素は「post-text」です

于 2012-06-16T14:24:32.720 に答える