栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Scrapy 获取POST请求包中内容

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号