繁体   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