Scrapy 获取POST请求包中内容

使用Scrapy获取POST请求包中内容

  • 只在spider文件中测试输出到Terminal,没有涉及到管道(items)和下载器(pipelines)
class Spider(scrarpy.Spider):
    ...		# name、allowed_domians
	# 设置爬取延迟时间
    custom_settings = {
        'DOWNLOAD_DELAY': 0.1,  #延迟爬取时间,这个就是设置单个爬虫的 settings
        # 'RANDOMIZE_DOWNLOAD_DELAY': True 
    }
	
	# 设置请求头
	hreders = {
		'Origin':'xxx',
		'Content-Type':'xxx',
		'X-Requested-With':'xxx',
		'User-Agent':'xxx',
	}
	
	# 重写 start_requests(self) 方法
	def start_requests(self):
		# 获取POST请求包中的 Payload	变量名自定义
        pl = {
            '填入POST请求包中的request payload'
        }
        # 循环遍历
        for i in pl:
            yield scrapy.FormRequest(url='POST请求包链接',
                                     method="POST", body=i, 
                                     headers=self.headers, 
                                     callback=self.parse,
                                     dont_filter=True)
    def parse(self, response):
        # 判断POST请求 返回状态码 以及 返回文本内容 是否正常
        if response.status == 200 and len(response.text) > 10:
            # 测试输出 POST请求返回文本内容
            # print(response.text)
        	
            # 将文本内容转换成字典格式
            # 示例 
            # rows: [{attachmentsNum: 0, canBid: false, categoryCode: "111", categoryName: "XXX", clickRate: 0,…},…]
            content = json.loads(response.text)['rows']	# [Previe中最外层键]
            # 遍历获取 字典中rows键 的值
            for i in content:
                # 获取rows中的嵌套字典value
                """
                    rows: [{xxx: xxx, xxx: xxx, xxx: "xxx", xxx: "xxx",…},…]
                        0: {xxx: xx, xxx: xx, xxx: "xx", xxx: "xx",…}
                            xxx: xx
                            id: "xxx"
                            publishTime: "2022-06-24 17:45:27"
                            title: "xxxx"
                """
                title = i['title']
                ids = i['id']
                times = i['time']
                
                # 测试输出
                print(title, ids, times)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FREE_QIU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值