python-3.x - 如何将scrapy.Response 传递给字典?
问题描述
我了解如何使用requests
库执行此操作
import requests
def start_requests(self):
token = requests.get('https://support.hpe.com/hpesc/public/km/api/coveo/search/token').text
headers = {
...
'Authorization': f'Bearer {json.loads(token)["persistentSearchToken"]}',
...
}
告诉我如何使用scrapy
?
一开始我想这样做:
def start_requests(self):
token = scrapy.Request(
url='https://support.hpe.com/hpesc/public/km/api/coveo/search/token',
callback=self.get_token
)
headers = {
...
'Authorization': f'Bearer {json.loads(token)["persistentSearchToken"]}',
...
}
def get_token(self, response):
return response.text
但事实证明,“token”变量不是“Response”类的对象。它是“请求”类的对象。
解决方案
尝试这个
def start_requests(self):
yield scrapy.Request(
url='https://support.hpe.com/hpesc/public/km/api/coveo/search/token',
callback=self.get_token,
headers = {
...
'Authorization': f'Bearer {json.loads(token)["persistentSearchToken"]}',
...
})
def get_token(self, response):
return response.text
推荐阅读
- apache-spark - Pyspark - 将 RDD 转换为键值对 RDD,键按升序排列
- python - Python关于读取两个txt并输出一个txt的问题
- flutter - 如何在flutter中使用switch语句在sidenavbar上执行signOut?
- python-3.7 - 使用 Python 下载 Sharepoint Online 文件
- oracle - 除了get_ddl过程之外,如何在oracle中获取at表的ddl
- c++ - 如何在 C++ 中以最佳方式序列化两个文件夹的差异
- java - 什么是 GC_HeapInspection,什么可以触发它?
- python-3.x - Scrapy管道mysql连接模块错误
- javascript - JavaScript:触发多个事件?
- python - Librosa 频谱图参数