【发布时间】:2018-11-22 21:40:52
【问题描述】:
这里有两个示例演示了成功的 POST 请求。但我无法自主复制。
示例1
视觉要求:data={'SearchTxt':'bla'}
实际需要: data={'page':'search', 'SearchTxt':'bla'}
import requests
session = requests.Session()
a = session.head('https://www.axemusic.com')
session.cookies['Lm722stores'] = None
session.cookies.set('Lm722stores', '5h5i1rm6q3ur4mg67rs7kb77p4', domain='.axemusic.com', path='/')
response = session.post('https://www.axemusic.com/', data={'page':'search', 'SearchTxt':'bla'})
if response.text.find('Search results for bla') != -1: print('found')
else: print('not found')
示例2
视觉要求:https://stackoverflow.comdata={'q':'bla'}
实际需要:https://stackoverflow.com/searchdata={'q':'bla'}
import requests
session = requests.Session()
a = session.head('https://stackoverflow.com')
session.cookies['prov'] = None
session.cookies.set('prov', '2922137c-e851-cd7e-8df4-9e5eb968ab33', domain='.stackoverflow.com', path='/')
response = session.post('https://stackoverflow.com/search', data={'q':'bla'})
if response.text.find('highlight">bla</span>') != -1: print('found')
else: print('not found')
有没有办法让这个过程更加自主。在知道 requests 执行 POST 实际需要什么之前,我宁愿不必手动测试浏览器中的每个输入并手动检查 GET 输出。
【问题讨论】:
-
你在说什么?对不起,我无法理解。你能说得清楚一点吗?什么是“视觉要求”?
-
当您访问 stackoverflow.com 时...您可以选择搜索...但
requests并非如此...。只有stackoverflow.com/search允许您选择搜索 -
与
requests无关。你只是不明白网站是如何工作的。您可以选择搜索domain.com并不意味着您的所有请求都发送到此路由。显然,您的部分或大部分请求被发送到其他特定路由。
标签: python python-3.x session python-requests urllib