首页 > 解决方案 > 无法在响应中可视化元素值(python 请求)

问题描述

我正在抓取网页,但我在最后一步真的很累。问题是在浏览器中我可以看到元素及其值。这是浏览器中的代码,如您所见,sessionId 元素值显示在浏览器中。但是当我将 python 与 get 请求一起使用时,我可以看到除该元素之外的每个元素及其值。

<input type="hidden" name="csrf_token" value="mjf1dtjVyE6RWzwN56p5HfXWJDBwsWyAOvU0i4aCxOjm2ZXlUNYR_LeGUQ7HLuiTrLE1DdGUv6qmUP8e6Zf4C-MMyJITyERblm63DTOwdJRcLJTR5dzm4E5v3yusDi9TLGbDp670GvJOZhOU9dJEgeXbl2352wu4SsdOeMWaQ1WZmsJ9QJw=">
<input type="hidden" name="sessionId" data-savepayment-session-id="" value="2cdd73d7-a479-40dc-bcf7-5eeeaf3aee3c">

这是我的python代码:

    form = soup.find("form",{"class":"submit-order"})
    link = form.get('action')
    token = form.find("input",{"name":"csrf_token"}).get('value')
    session_id = form.find("input",{"name":"sessionId"}).get('value')
    inputs = form.findAll('input')
    print(inputs)

这是我的 python 代码的输出:

[<input name="csrf_token" type="hidden" value="_tbpVfO-tGp7YRuZorQ2RzlQuAnUV7bmKwrcyXXa4_VxFJ5eFHHVmcu81RS6ZOZ7ROJiGRwS6eb_aWZ0qFyhhrKbfRdKdq5C9TWbk-i2r9UBcgInm8qwCOOpZ99yxIJQy79xMcfZ_OHdrQGmlFNWXUtn781zBN59LO_opzkFWxlO0OFQtfc="/>,
 <input data-savepayment-session-id="" name="sessionId" type="hidden" value=""/>]

如您所见, sessionId 的值为空您能帮帮我吗?我不明白为什么我可以在浏览器中看到值,而不是在我的代码中。当然,我正在使用 request.session() 以及标题和帖子。

这是一个帖子的例子

post2 = session.post(link, data=payload, headers = headers)

标签: pythonweb-scrapingpython-requestsbrowser-automation

解决方案


推荐阅读