Python从搜索中获取请求并检索数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python从搜索中获取请求并检索数据相关的知识,希望对你有一定的参考价值。
我正在尝试使用请求模块从这个网站检索数据:https://toelatingen.ctgb.nl/
我想在“11462”中输入“Zoekterm”字段时收到找到的数据。
data = { "searchTerm": "11462"}
session = requests.Session()
r = session.post('https://toelatingen.ctgb.nl/',data=data)
body_data = r.text
遗憾的是,body_data的内容不包含搜索到的信息。
谢谢你的帮助。
答案
您没有收到响应数据的原因是因为该网站没有在该网址上进行搜索。相反,它打电话给https://toelatingen.ctgb.nl/nl/admissions/overview。
当您尝试从互联网上获取信息时,您要做的第一件事就是检查您的Web浏览器如何获取数据。如果您打开所选浏览器附带的任何检查工具(通常热键是ctrl + shift + i),您应该能够找到一个跟踪浏览器发出的请求和响应的网络选项卡。打开后,让浏览器显示所需信息,并在执行此操作时观看“网络”选项卡。检查出现的任何响应,找到具有所需信息的响应,然后复制浏览器使用的请求。
在你的情况下:
- 根页面首先从https://toelatingen.ctgb.nl/加载一个空页面
- 然后加载一堆静态文件(主要是woff和js;这些文件用于设置网页样式并处理不同的操作)
- 然后它打电话给https://toelatingen.ctgb.nl/nl/admissions/overview。我们可以非常肯定这是我们此时想要的调用,因为响应是一个json,其中包含我们在屏幕上显示的信息。
- 然后,我们将所有信息 - 标题和表单,行 - 来自该请求,插入,并查看
requests
模块是否返回相同的json。 - 如果没有那么那很可能意味着我们错过了一些东西(通常是CSRF令牌或特殊的Accept-Encoding),我们需要做一些修补。
- 我还建议花一点时间来删除部分请求数据/标题:大多数时候它们包含服务器实际上不需要的额外条款。这样可以节省空间,让您更好地了解可以更改的请求的哪些部分。
以上是关于Python从搜索中获取请求并检索数据的主要内容,如果未能解决你的问题,请参考以下文章