为了账号安全,请及时绑定邮箱和手机立即绑定

向维基百科发送帖子请求

向维基百科发送帖子请求

蝴蝶刀刀 2023-11-09 21:43:26
我正在尝试将数据发送到维基百科(基本上是尝试将“python”一词输入维基百科搜索栏并打印内容)这是我尝试过的:import requestspayload = {'family': 'wikipedia','language': 'en','search': 'python','language': 'en','go': 'Go'}with requests.Session() as s:    url = 'https://www.wikipedia.org/'    r = s.get(url)    r = s.post(url, data=payload)    print(r.content)但似乎不起作用这是我尝试将数据发送到的网站: https: //www.wikipedia.org/
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果您只想通过将 python 提交到维基百科搜索栏来获取内容,则无需创建发布请求。一个简单的 get 请求就可以正常工作:

search_term = "python"response = requests.get(f'https://en.wikipedia.org/wiki/{search_term}')print(response.content)

因此,回答您剩下的问题:

我将使用帖子请求进行登录等,所以我想通过帖子请求进行学习

GET,,, HTTP请求是服务器端POST实现。它们并不神奇地存在于一切事物中。因此,如果维基百科决定不在搜索栏中提出搜索请求,那就太糟糕了。您不能用于进行搜索。您将不得不使用其他方式进行搜索,无论它们支持什么(从我的测试来看似乎是通过请求)PUTDELETE UPDATEPOSTPOSTGET

因此,即使他们可能实现POST登录(正如他们应该的那样),但并非所有内容都一定有关联的POST请求。

我不能使用 post 来自动化它,比如登录和按下按钮,就像 selenium 所做的那样

有点。您可以使用 HTTP 请求进行与单击按钮时相同的 HTTP 调用。但这与单击按钮并不完全相同,因为单击按钮仍然可以在网络浏览器中在幕后执行许多其他操作。并且并非每个按钮 HTTP 调用都必然是一个POST请求。

但除此之外,即使您使用 Selenium 在 Wikipedia 中进行搜索,它最终仍然会成为一个GET请求,因为 Wikipedia 改变了搜索的工作方式(至少基于您发布的内容)。他们要求搜索需要GET请求,因此您必须提出GET请求。

POSTTLDR:过去可能是可行的,但现在已经不可能了,因为这是维基百科做出的决定。


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信