簡體   English   中英

將python連接到網絡並驗證用戶輸入的基礎

[英]Basics of connecting python to the web and validating user input

我是一個相對較新的人,從哪里開始我茫然。 我不希望有詳細的分步答復(當然,當然歡迎那些答復),但是任何朝着正確方向前進的人都會受到贊賞。

我想使用Gutenberg python庫根據用戶輸入選擇文本。

現在我有代碼:

from gutenberg.acquire import load_etext
from gutenberg.cleanup import strip_headers

text = strip_headers(load_etext(11)).strip()

其中的數字代表文字(在這種情況下為11 =愛麗絲夢游仙境)。

然后,我有一堆關於如何處理文本的代碼,但是我認為這與這里無關。 (如果讓我知道,我可以添加它)。

基本上,我想讓用戶這樣做,而不僅僅是選擇文本。 我想請用戶選擇作者,如果古騰堡計划(PG)有該作者的作品,請讓他們從書名列表中選擇(如果PG沒有該作者的作品,請返回一些回復遵循“對不起,$ author_name沒有任何東西,選擇其他人。”然后,一旦用戶決定了一本書,就將與該書相對應的編號輸入代碼中。

我只是不知道從這個過程開始。 我知道如何處理用戶輸入,但我不知道如何接受輸入並使用它在線搜索某些內容。

理想情況下,我也能夠處理諸如拼寫錯誤之類的事情,但這可能就行了。

我非常感謝任何人有時間給予的幫助。 謝謝!

gutenberg模塊包括用於通過元數據 (例如作者) 搜索文本的工具 文檔中的示例為:

from gutenberg.query import get_etexts
from gutenberg.query import get_metadata

print(get_metadata('title', 2701))  # prints frozenset([u'Moby Dick; Or, The Whale'])
print(get_metadata('author', 2701)) # prints frozenset([u'Melville, Hermann'])

print(get_etexts('title', 'Moby Dick; Or, The Whale'))  # prints frozenset([2701, ...])
print(get_etexts('author', 'Melville, Hermann'))        # prints frozenset([2701, ...])

聽起來好像您已經知道如何將用戶的值讀取到變量中一樣,並且替換上面的文字作者就像執行以下操作一樣簡單:

author_name = my_get_input_from_user_function()
texts = get_etexts('author', author_name)

請注意同一部分中的以下注意事項:

在使用gutenberg.query函數之一之前,必須填充本地元數據緩存。 這個一次性的過程將花費相當長的時間(在我的計算機上需要18個小時),但是一旦完成,隨后對get_etexts或get_metadata的任何調用都會非常快。 如果無法填充緩存,則調用將引發異常。

考慮到這一點,我沒有嘗試過在此答案中介紹的代碼,因為我仍在等待填充本地緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM