Python爬虫实战S08 http post请求的数据爬取图文教程

2025-01-01阅读数:117
上一篇:Python爬虫实战E01用户名密码登录爬取后台数据图文教程
下一篇:Python爬虫实战S07ajax动态加载数据的爬取图文教程

打开Python爬虫实战练习页面http post请求的数据爬取_S08_Spiderbuf,看到页面上只有一个“查询数据”的按钮,点击一下这个按钮,然后页面加载了数据出来。但这时候可以看到,浏览器的地址栏的地址是没有任何变化的。

我们重新打开页面,打开发者工具(F12),切换到Network(网络)标签页,然后回到网页上点击查询数据。可以看到有个s08的请求,点击一下,在右边展开的详情页可以看到Request Method 的值是POST。

在之前的练习中,我们都是介绍的浏览器默认的HTTP GET 方法,其实HTTP中支持的方法有多种。

序号 方法 描述
1 GET 从服务器获取资源。用于请求数据而不对数据进行更改。例如,从服务器获取网页、图片等。
2 POST 向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。
3 PUT 向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。
4 DELETE 从服务器删除指定的资源。请求中包含要删除的资源标识符。
5 PATCH 对资源进行部分修改。与 PUT 类似,但 PATCH 只更改部分数据而不是替换整个资源。
6 HEAD 类似于 GET,但服务器只返回响应的头部,不返回实际数据。用于检查资源的元数据(例如,检查资源是否存在,查看响应的头部信息)。
7 OPTIONS 返回服务器支持的 HTTP 方法。用于检查服务器支持哪些请求方法,通常用于跨域资源共享(CORS)的预检请求。
8 TRACE 回显服务器收到的请求,主要用于诊断。客户端可以查看请求在服务器中的处理路径。
9 CONNECT 建立一个到服务器的隧道,通常用于 HTTPS 连接。客户端可以通过该隧道发送加密的数据。

回到开发者工具这里,在Headers的右边多出来了一个Payload标签页面,这里又是一个小知识:HTTP Post 携带的数据称为Payload(国内通常翻译成载荷),所以点击切换到Payload标签页,就能看到到我们刚才点击按钮时向后台发送的数据。

level: 8

这时候就可以使用Python编写爬虫构造请求来爬取网页了。

url = 'http://www.spiderbuf.cn/playground/s08'
myheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'}

payload = {'level':'8'}
html = requests.post(url, headers=myheaders, data=payload).text
print(html)

完整示例代码:示例代码