小编Mat*_*hew的帖子

使用Python登录网站,填写表格,然后退出

作为我在Python上变得更好的一部分,我现在正试图登录我经常访问的网站,给自己发一条私信,然后退出.到目前为止,我已设法登录(使用urllib,cookiejar和urllib2).但是,我无法弄清楚如何填写所需的表格来给自己发送信息.

表单位于/messages.php?action=send.要发送的消息需要填写三件事:名称为name,title和message的三个文本字段.此外,还有一个提交按钮(名为"提交").

我如何填写此表并发送?

html python forms urllib web

20
推荐指数
3
解决办法
6万
查看次数

查找Ttk Notebook的当前选定选项卡

我有一个包含8个框架的Ttk Notebook小部件 - 所以,8个标签.每个框架都包含一个Text小部件.我在Notebook小部件外面有一个按钮,我想在按下此按钮时将文本插入当前选项卡Text小部件.

这似乎需要确定当前选择Notebook中的哪个小部件,但我似乎无法找到如何执行此操作.如何找到当前选中的标签?

或者,我该如何实现我想要的?

如果它有帮助,这是我的笔记本的代码:

self.nb = Notebook(master)
self.nb.pack(fill='both', expand='yes', padx=10, pady=10)
self.frames = []
self.texts = []
for i in xrange(8):
  self.frames.append(Frame())
  self.nb.add(self.frames[i])
  self.texts.append(Text(self.frames[i]))
  self.texts[i].pack(fill='both')
Run Code Online (Sandbox Code Playgroud)

python tkinter ttk

9
推荐指数
3
解决办法
1万
查看次数

使用Mechanize提交表单(Python)

好吧,我正在尝试使用Python登录网站并进行机械化.

我打开了网站:

site = br.open("http://example.com/login.php")
Run Code Online (Sandbox Code Playgroud)

我有一个表单列表(使用br.forms).

<GET http://example.com/search.php application/x-www-form-urlencoded
<HiddenControl(search=1) (readonly)>
...
<POST http://example.com/login.php application/x-www-form-urlencoded
<TextControl(username=)>
<PasswordControl(password=)>
<CheckboxControl(stay=[1])>
<SubmitControl(<None>=Log in) (readonly)>>
Run Code Online (Sandbox Code Playgroud)

我一直在尝试提交用户名和密码字段.

我尝试这样做:

br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
Run Code Online (Sandbox Code Playgroud)

然后我意识到我试图填写的表单不是页面上的第一个,但更改0对任何事都没有帮助.如何在这样的页面上选择表单?

然而!这不是唯一的问题.

当我运行它时,我收到此错误:

Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?D:或者我完全错了吗?如果是后者,我该怎么做呢?

python forms login mechanize

8
推荐指数
1
解决办法
1万
查看次数

从命令行推送到现有的AWS Elastic Beanstalk应用程序

我使用Elastic Beanstalk的Web仪表板来创建应用程序和环境.我知道我可以使用仪表板更新它并上传我的应用程序的zip文件,但我宁愿使用命令行上传我的应用程序.

显然,正确的工具是ebElastic Beanstalk的CLI.我已经安装了这个并尝试使用它,遵循亚马逊" 将Flask应用程序部署到AWS Elastic Beanstalk "教程.但是,这似乎创建了与EB仪表板上可见的应用程序完全不同的应用程序 - 对其所做的更改未显示在仪表板上,并且应用程序甚至具有不同的URL.

如何使用命令行访问AWS Elastic Beanstalk上的现有应用程序?

python amazon-web-services amazon-elastic-beanstalk

8
推荐指数
1
解决办法
7815
查看次数

NumPy - 根据结构化数组中的其他值设置结构化数组中的值

我有一个结构化的NumPy数组:

a = numpy.zeros((10, 10), dtype=[
    ("x", int),
    ("y", str)])
Run Code Online (Sandbox Code Playgroud)

我想在设定值a["y"]要么"hello"如果相应的值a["x"]是负的.据我所知,我应该这样做:

a["y"][a["x"] < 0] = "hello"
Run Code Online (Sandbox Code Playgroud)

但这似乎改变了价值观a["x"]!我正在做什么有什么问题,我该怎么办呢?

python numpy

7
推荐指数
1
解决办法
1229
查看次数

Flask-SQLAlchemy过滤器和运算符

Flask-SQLAlchemy提供了筛选查询的选项.您可以通过多种方式筛选查询 - Flask-SQLAlchemy文档提供的示例:

User.query.filter_by(username='peter') # Returns all users named 'peter'
User.query.filter(User.email.endswith('@example.com')) # Returns all users with emails ending in '@example.com'
Run Code Online (Sandbox Code Playgroud)

我还发现这是一对多的关系:

User.query.filter(User.addresses.any(address=address)) # Returns all users who have a particular address listed as one of their addresses
Run Code Online (Sandbox Code Playgroud)

问题:

  • 有谁知道实际可以使用哪些过滤器?我无法在文档中的任何位置找到过滤器列表,这使得查询数据库变得相当困难.
  • 特别是,我会使用什么过滤器来检查用户的电子邮件是否包含在特定的一组电子邮件地址中?

python sqlalchemy operators flask flask-sqlalchemy

6
推荐指数
1
解决办法
2万
查看次数

分发本地 Flask 应用程序

我制作了一个简单的 Flask 应用程序,它本质上是一个围绕 sqlite3 的包装器。它基本上在本地运行开发服务器,您可以从 Web 浏览器访问该界面。目前,它的功能完全正常。

我需要在计算机上运行它,该计算机由计算技能不那么先进的人操作。我可以在计算机上安装 Python,然后运行我的 .py 文件,但我对所涉及的文件“公开”感到不舒服。有没有办法可以把这个应用程序放到一个可执行文件中?我曾尝试同时使用 py2exe 和 cx_freeze,但两者都在“图像”上引发了 ImportError。我还尝试压缩文件(__main__.py 和所有这些),但是在尝试运行该文件时遇到了 500 个错误(我假设该文件由于某种原因无法访问模板。)

如何将此 Flask 应用程序部署为可执行文件?

python distribution flask

5
推荐指数
1
解决办法
1629
查看次数

仅在 Docker 内使用日志记录和 Click 进行 Pytest 失败并出现 ValueError

我正在开发一个使用 Click 的库。它包含在 Docker 映像中。我正在尝试使用 pytest 使用 来测试它click.testing.CliRunner。我用来logging编写日志,并且我已指定这些日志应在pyproject.toml. 当我的代码中引发异常(并且仅在 Docker 内)时,我从 Click 中得到以下异常:

/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
            except Exception as e:
                if not catch_exceptions:
                    raise
                exception = e
                exit_code = 1
                exc_info = sys.exc_info()
            finally:
                sys.stdout.flush()
>               stdout = outstreams[0].getvalue()
E               ValueError: I/O operation on closed file.

/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
Run Code Online (Sandbox Code Playgroud)

我已经设法最小化地重现这个问题。我的代码看起来像这样:

/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
            except Exception as e:
                if not catch_exceptions:
                    raise
                exception = e
                exit_code = 1
                exc_info = sys.exc_info()
            finally:
                sys.stdout.flush()
>               stdout = …
Run Code Online (Sandbox Code Playgroud)

python pytest docker python-click

5
推荐指数
0
解决办法
493
查看次数