python - Scrapy - 从 javascript 脚本响应中检索身份验证令牌
问题描述
我需要有关此特定情况的帮助。
设想
- 呼叫站点
我可以从<script>
标签中获取此信息
使用密钥,我必须调用此端点
用于检索存储在 javascript 响应中的 SessionID
-- omitted
private._sessID='MYSESSIONID';
-- omitted
最后,使用这个 sessionId 并执行正确的 POST 操作,我可以在我需要的所有页面中导航。
我的僵局
我可以使用scrapy shell
with模拟所有步骤regEx
(并且一切正常),但在开始数据提取之前,我不知道如何在 scrapy 蜘蛛中管理这些步骤。
有人可以帮我吗?
解决方案
您需要http://www.example.com/index.php
通过在启动请求方法中调用它来从基本 URL 开始,并编写其回调并从其他端点提取信息并将该结果带到其他回调中,然后您可以开始抓取过程。
您需要通过以下方式实现
class CrawlSpider(scrapy.CrawlSpider):
def parse_authentication_token(self, response):
//extract token or whatever require and then call supers parse
yield from super().parse()
def start_request(self):
return Request(url, callback=self.parse_authentication_token)
推荐阅读
- mysql - 在查询构建器中实现 SQL 时出现问题
- laravel - 使用 Vue.Js / Inertia.js 和 Laravel 对结果进行分页
- r - R:每行创建数据框行,其中包含命名列和类型列
- docker - 多阶段 Docker 映像
- python - Plotly:使用 Spyder 不会出现图形窗口
- c - 如果只允许一个操作,即按 K 位右移,则二进制字符串将产生的最大二进制数,其中 K = [0,字符串长度]
- sparql - Protege 中的 SPARQL - 计算 xsd:Integer 结果平均值的问题
- r - lubridate::round_date () 在大型数据集上给出全零
- javascript - JavaScript includes() 并且不忽略空格,修复代码格式
- r - R:三类情况下LDA的阈值如何计算?