gpt4 book ai didi

python - 使用 python requests 提交表单并获取结果

转载 作者:行者123 更新时间:2023-12-01 05:31:50 26 4
gpt4 key购买 nike

我对python的请求不太熟悉。我需要做一件事。这是一个链接:https://bugzilla.mozilla.org/buglist.cgi?bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=INCOMPLETE&resolution=SUPPORT&resolution=EXPIRED&resolution=MOVED&order=bug_id&limit=10

下面有一个xml的按钮。如果单击此按钮,您将获得一个 xml 页面。我希望可以使用python代码自动获取xml内容。

该 xml 按钮页面上的 html 是:

<form method="post" action="show_bug.cgi">
<input type="hidden" name="ctype" value="xml">
<input type="hidden" name="id" value="35">
<input type="hidden" name="id" value="36">
<input type="hidden" name="id" value="37">
<input type="hidden" name="id" value="38">
<input type="hidden" name="id" value="39">
<input type="hidden" name="id" value="41">
<input type="hidden" name="id" value="42">
<input type="hidden" name="id" value="43">
<input type="hidden" name="id" value="51">
<input type="hidden" name="id" value="61">
<input type="hidden" name="excludefield" value="attachmentdata">
<input type="submit" value="XML" id="xml">
</form>

我尝试使用请求。我尝试过这样的代码:

import requests
values = { 'submit': 'xml'}
req = requests.post('https://bugzilla.mozilla.org/buglist.cgi?bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=INCOMPLETE&resolution=SUPPORT&resolution=EXPIRED&resolution=MOVED&order=bug_id&limit=10',data=values)
print req.text

但我遇到了错误。

有人可以帮我指出请求的正确用法吗?谢谢。

最佳答案

您是如何安装requests的?如果出现导入​​错误,则可能没有安装所有依赖项。请参阅此处的讨论:https://github.com/kennethreitz/requests/issues/513 .

此外,您似乎访问了错误的网址。您不想获取原始的 buglist.cgi,而是希望 POST 到 show_bug.cgi,因为这是表单操作的目标。您还需要包含隐藏表单字段的所有值:

import requests
values = {}
values['ctype'] = 'xml'
# Multiple values for the same name are handled via array
values['id'] = [35, 36, 37, 38, 39, 41, 42, 43, 51, 61]
values['excludefield'] = 'attachmentdata'
req = requests.post('https://bugzilla.mozilla.org/show_bug.cgi', data=values)
print req.text

关于python - 使用 python requests 提交表单并获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com