Python requests未返回正确数据

0 投票
1 回答
53 浏览
提问于 2025-04-14 15:59

我正在做一个数据抓取的项目,但遇到了一些问题。我使用Python的requests库成功登录了网站,并获取了需要发送的令牌(tokens)。问题出现在后面。当我发送正确的令牌并进行一个POST请求,想要获取一个表格的信息时,返回的却不是数据,而是一个没有数据的HTML页面。

这里是图片描述 这是我在网页上POST请求的响应图片。

这里是图片描述 这是我通过Python的requests库得到的响应图片。

这可能是什么原因造成的呢?我该如何获取数据?我已经进行了正确的POST请求,并提供了cookies和凭证。

附上代码

def login():
    credentials = file_manager.file_manager.get_credentials()
    print(credentials)

    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0',
        'Accept':'text/html,application/xhtml+xml,application/xml;'
        }
    
    session = requests.session()

    session.headers.update(headers)

    r = session.get(credentials[0])

    soup = BeautifulSoup(r.text, 'html.parser')
    verificationToken = (soup.find(attrs={'name':'__RequestVerificationToken'}).attrs['value'])

    parameters = {
        "__RequestVerificationToken":str(verificationToken),
        "versao":"6",
        "Email":credentials[1],
        "Password":credentials[2],
        "ReturnUrl":""
    }

    r = session.post(url,params=parameters, headers=headers)
    r = session.get(url, headers=headers)
    r = session.get(url,headers=headers)

    parameters = {
            parameter:parameter,
        }

    r = session.post(url, headers=headers)

    f = open('response.html','w', encoding="utf-8")
    f.write(r.text)

1 个回答

0

我找到了该怎么做。

在发送POST请求的时候,给请求的头部加上 'X-Requested-With': 'XMLHttpRequest' 这一项,并且在请求中使用 data= 而不是 params=

撰写回答