我正在尝试将数据发送到维基百科(基本上是尝试将“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
实现。它们并不神奇地存在于一切事物中。因此,如果维基百科决定不在搜索栏中提出搜索请求,那就太糟糕了。您不能用于进行搜索。您将不得不使用其他方式进行搜索,无论它们支持什么(从我的测试来看似乎是通过请求)PUT
DELETE
UPDATE
POST
POST
GET
因此,即使他们可能实现POST
登录(正如他们应该的那样),但并非所有内容都一定有关联的POST
请求。
我不能使用 post 来自动化它,比如登录和按下按钮,就像 selenium 所做的那样
有点。您可以使用 HTTP 请求进行与单击按钮时相同的 HTTP 调用。但这与单击按钮并不完全相同,因为单击按钮仍然可以在网络浏览器中在幕后执行许多其他操作。并且并非每个按钮 HTTP 调用都必然是一个POST
请求。
但除此之外,即使您使用 Selenium 在 Wikipedia 中进行搜索,它最终仍然会成为一个GET
请求,因为 Wikipedia 改变了搜索的工作方式(至少基于您发布的内容)。他们要求搜索需要GET
请求,因此您必须提出GET
请求。
POST
TLDR:过去可能是可行的,但现在已经不可能了,因为这是维基百科做出的决定。
添加回答
举报
0/150
提交
取消