向维基百科发送帖子请求

我正在尝试将数据发送到维基百科(基本上是尝试将“python”一词输入维基百科搜索栏并打印内容)


这是我尝试过的:


import requests


payload = {'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/


蝴蝶刀刀
浏览 70回答 1
1回答

墨色风雨

如果您只想通过将 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:过去可能是可行的,但现在已经不可能了,因为这是维基百科做出的决定。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python