0

コンピューターに twill をインストールし (以前に Python 2.5 をインストールしました)、最近使用しています。

Python は、コンピューターのディスク C にインストールされています: C:\Python25

ツイル フォルダー (「twill-0.9」) は次の場所にあります: E:\tmp\twill-0.9

ツイルで使用しているコードは次のとおりです。

go “some website’s sign-in page URL”
formvalue 2 userid “my login”
formvalue 2 pass “my password”
submit
go “URL of some other page from that website”
save_html result.txt

このコードは、アカウントを持っている 1 つの Web サイトにログインし、その Web サイトの他のページの HTML コード (ログイン後にのみアクセス可能) を記録し、「結果. txt」(もちろん、このコードを使用する前に、まず「my login」を実際のログインに、「my password」を実際のパスワードに、「some website's sign-in page URL」および「some other page of some from from」に置き換える必要があります。そのウェブサイト」はそのウェブサイトの実際の URL で、番号 2 はそのウェブサイトのログイン ページでサインイン フォームとして使用されるそのウェブサイトのフォームの番号です)

このコードは、「twill-0.9」フォルダーにある「test.twill」ファイルに保存します: E:\tmp\twill-0.9\test.twill コマンド プロンプトからこのファイルを実行します: python twill-sh test。あや織り

さて、私も「Google App Engine」から「Google App Engine SDK」をインストールしてしばらく使っています。

たとえば、私はこのコードを使用しています:

import hashlib
m = hashlib.md5()
m.update("Nobody inspects")
m.update(" the spammish repetition ")
print m.hexdigest()

このコードは、「誰もスパムの繰り返しを検査しない」というフレーズを md5 ダイジェストに変換するのに役立ちます。

では、これら 2 つのコードを「Google App Engine」で実行できる 1 つの Python スクリプトにまとめるにはどうすればよいでしょうか。

たとえば、コードで「Google App Engine」から Web サイトにログインし、その Web サイトの別のページに移動し、その HTML コードを記録し (これが私のツイル コードの機能です)、この HTML コードを md5 ダイジェストに変換します。 (それが私の2番目のコードが行うことです)。では、これら 2 つのコードを 1 つの Python コードに結合するにはどうすればよいでしょうか?

どうにかツイルを輸入してやればいいのでしょうが、どうすればいいのでしょうか?Python コード (「Google App Engine」によって実行されているコード) は、インターネット上のどこかからツイルをインポートできますか? それとも、「Google App Engine」にはすでに twill がインストールされているのでしょうか?


更新 1:

(この更新は、Wooble の回答に対する私の回答です)

__initこれは、 __.py ファイルを含むすべてのフォルダー (私の「twill-0.9」フォルダー内) のリストです。(このリストの一部のフォルダーは、このリストにも記載されている他のフォルダー内にあります):

E:\twill-0.9\build\lib\twill\extensions\match_parse

E:\twill-0.9\build\lib\twill\extensions

E:\twill-0.9\build\lib\twill\other_packages\_mechanize_dist

E:\twill-0.9\build\lib\twill\other_packages

E:\twill-0.9\build\lib\twill

E:\twill-0.9\twill\extensions\match_parse

E:\twill-0.9\twill\extensions

E:\twill-0.9\twill\other_packages\_mechanize_dist

E:\twill-0.9\twill\other_packages

E:\twill-0.9\twill

4

4 に答える 4

3

これが役立つ場合は、twill を使用して Google 検索を実行する例を次に示します。twill と beautifulsoup を一緒に使用して Web ページを解析する方法を示します。

>>> import twill.commands
>>> import BeautifulSoup
>>> 
>>> class browser:
...    def __init__(self, url="http://www.google.com",log = None):
...       self.a=twill.commands
...       self.a.config("readonly_controls_writeable", 1)
...       self.b = self.a.get_browser()
...       self.b.set_agent_string("Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14")
...       self.log = log
...       self.b.clear_cookies()
...       self.url=url
...    def googleQuery(self, query="python code"):
...       self.b.go(self.url)
...       #self.b.showforms()
...       f = self.b.get_form("f")
...       #print "form is %s" % f
...       f["q"] = query
...       self.b.clicked(f, "btnG")
...       self.b.submit()
...       pageContent = self.b.get_html()
...       soup=BeautifulSoup.BeautifulSoup(pageContent)
...       ths = soup.findAll(attrs={"class" : "l"})
...       for a in ths:
...          print a
... 
>>> t=browser()
>>> t.googleQuery("twill queries")
==> at http://www.google.ie/
Note: submit is using submit button: name="btnG", value="Google Search"

<a href="http://pyparsing.wikispaces.com/WhosUsingPyparsing" class="l" onmousedown="return clk(this.href,'','','res','1','','0CBMQFjAA')">pyparsing - WhosUsingPyparsing</a>
<a href="http://www.mail-archive.com/twill@lists.idyll.org/msg00048.html" class="l" onmousedown="return clk(this.href,'','','res','2','','0CBcQFjAB')">Re: [<em>twill</em>] <em>query</em>: docs, and web site.</a>
<a href="http://www.mail-archive.com/twill@lists.idyll.org/msg00050.html" class="l" onmousedown="return clk(this.href,'','','res','3','','0CBkQFjAC')">Re: [<em>twill</em>] <em>query</em>: docs, and web site.</a>
<a href="http://www.genealogytoday.com/surname/finder.mv?Surname=Twill" class="l" onmousedown="return clk(this.href,'','','res','4','','0CB4QFjAD')"><em>Twill</em> Genealogy and Family Tree Resources - Surname Finder</a>
<a href="http://a706cheap-apparel.hobby-site.com/ladies-cotton-faded-twill-le-chameau-breeks-42" class="l" onmousedown="return clk(this.href,'','','res','5','','0CCEQFjAE')">Ladies Cotton Faded <em>Twill</em> Le Chameau Breeks 42</a>
<a href="http://twill.idyll.org/examples.html" class="l" onmousedown="return clk(this.href,'','','res','6','','0CCMQFjAF')"><em>twill</em> Examples</a>
<a href="http://panjiva.com/Sri-Lankan-Manufacturers-Of/twill+capri" class="l" onmousedown="return clk(this.href,'','','res','7','','0CCcQFjAG')">Sri-Lankan <em>Twill</em> Capri Manufacturers | Sri-Lankan Suppliers of <b>...</b></a>
<a href="http://c586cheap-apparel.dyndns.ws/twill-beige-blazer" class="l" onmousedown="return clk(this.href,'','','res','8','','0CCoQFjAH')"><em>Twill</em> beige blazer</a>
<a href="http://stackoverflow.com/questions/2267537/how-do-you-use-relative-paths-for-twill-tests" class="l" onmousedown="return clk(this.href,'','','res','9','','0CCwQFjAI')">How do you use Relative Paths for <em>Twill</em> tests? - Stack Overflow</a>
<a href="http://mytextilenotes.blogspot.com/2010/01/introduction-to-twill-weave.html" class="l" onmousedown="return clk(this.href,'','','res','10','','0CC8QFjAJ')">My Textile Notes: Introduction to <em>Twill</em> Weave</a>
>>>  
于 2010-05-20T16:05:07.823 に答える
1

App Engineプロジェクトでサードパーティのライブラリを使用するには、デプロイ時にそれらをアプリケーションに含める必要があります。twillフォルダー(を含むフォルダー__init__.py)をアプリケーションのフォルダーにコピーしてデプロイします。

twillのGoogleCodeプロジェクトを見ると、twillの依存関係(pyparsing、mechanizeなど)がパッケージに含まれているように見えるため、他に何も含める必要がない場合があります。

于 2010-04-26T23:33:38.273 に答える
1

twill モジュールを App-Engine にインポートする方法を探していると思います。ツイル python ファイルがどこにあるのか、またはそれらのソース パッケージを取得してウェブサイトにパッケージ化する方法を把握する必要がありますが、いくつかの例外を除いて、サード パーティ製モジュールのインポートを実行できるようです。以下を参照してください。

Google のサイトhereおよびhereの指示に従ってZipImportを試してください。

Google のサードパーティ ライブラリ ページから:

App Engine は、標準の実装ではなく、zipimport 機能のカスタム バージョンを使用します。通常は通常どおりに動作します。Zip アーカイブを sys.path に追加してから、通常どおりインポートします。これらの例外を除いて: zipimport は、アーカイブに .py ソース ファイルとして保存されているモジュールのみをインポートできます。.pyc または .pyo ファイルとして保存されたモジュールをインポートすることはできません。zipimport は純粋な Python で実装されており、解凍にネイティブ コード (C コード) を使用しません。

于 2010-04-26T22:47:14.583 に答える
1

twill が何をするのかわかりませんが (まあ、ググってみました)、AppEngine はWeb ページを取得するために使用できるfetch()機能を提供します。また、ログインなどの POST メソッドもサポートしています。

(AppEngine では、セキュリティ上の理由から使用できる Python ライブラリが限られているため、twill が AppEngine で機能するとは思えません。ただし、推測にすぎません。)

于 2010-04-26T22:38:34.977 に答える