Python爬虫实战(十三)Post请求中Payload处理分析—以某素材分享网为例

编程入门 行业动态 更新时间:2024-10-13 18:19:39

Python<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫实战(十三)Post请求中Payload处理分析—以某素材分享网为例"/>

Python爬虫实战(十三)Post请求中Payload处理分析—以某素材分享网为例

前情回顾:知网Post请求实战

在上篇博客中,我们分享了一个基础的Post请求爬虫。实际上,Post请求一般传入的都是Form data式的数据,本次分享一个Post请求为request load形式的爬虫案例~

目录

      • 一、爬虫分析
      • 二、全部代码

网站地址:某素材网站

一、爬虫分析

抓取字段:标题、尺寸、大小、格式、使用量、收藏量
经过简单抓包可知,右侧红框中则包含我们所需要的信息

我们来分析它的POST请求,发现传入的数据形式是request payload

此时,如果直接传入数据字典,返回数据的是为空的,如下图所示(注意:headers中需要传入x-csrf-token字段及cookie字段

原因在于:开发者为方便阅读,使用了JSON序列化,请求头中的【content-type: application/json】也印证了这一点

解决方法:将传入数据转为json即可,如下图所示

二、全部代码

import requests
import json
import pandas as pd
from jsonpath import jsonpath
url = ''params = {"item_id_list":["7005133042142465311"],"pre_item_type":4}def get_reponse(url,params):headers = {'authority': 'www.heycan','method': 'POST','path': '/api/materialInfo','scheme': 'https','content-type': 'application/json','origin': '','referer': '=7005133042142465311&from=personal_page&width=720&height=1280','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36','cookie': 'csrfToken=abalGrijwUtgehoA6ShdrPCD; s_v_web_id=verify_kuaurt73_zXaCAqEj_pEpR_4OQv_9D9Q_0YK9xKCKaiMB; MONITOR_WEB_ID=cd5c4073-b5b1-4fd7-8c46-c6252bbaa7dc','x-csrf-token': 'abalGrijwUtgehoA6ShdrPCD'}r = requests.post(url,headers=headers,data=json.dumps(params))json_data = json.loads(r.text)return json_datadef parse_inf(json_data):title = jsonpath(json_data,'$..item_list[*]mon_data.title')width = jsonpath(json_data,'$..item_list[*]mon_data.icon.width')height = jsonpath(json_data,'$..item_list[*]mon_data.icon.height')favorite_num = jsonpath(json_data,'$..item_list[*].statistics.favorite_num')usage_num = jsonpath(json_data,'$..item_list[*].statistics.usage_num')video_size_type = jsonpath(json_data,'$..item_list[*].video.video_size_type')inf_data = pd.DataFrame({'title':title,'width':width,'height':height,'favorite_num':favorite_num,'usage_num':usage_num,'video_size_type':video_size_type})return inf_datajson_data = get_reponse(url,params)
parse_inf(json_data)

更多推荐

Python爬虫实战(十三)Post请求中Payload处理分析—以某素材分享网为例

本文发布于:2024-03-07 01:26:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716486.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   为例   实战   素材   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!