如何找到动态加载内容的来源

问题描述

我想抓取this table中的条目。它显然是在页面加载后由javascript填充的,因此,我不是直接抓取(使用诸如webdriver之类的东西),而是想直接从javascript正在与之通信的任何服务中请求数据。

使用chrome dev工具的“网络”标签,我认为我已将其范围缩小到xhr POSThttps://www.oregon.gov/oha/ERD/_vti_bin/client.svc/ProcessQuery,但显示的响应看起来并不相关,并且没有其他网络活动项目似乎也是。

我该如何准确地跟踪正在填充表的请求?

解决方法

HTML5引入了web-storage,它像Cookie一样在本地缓存数据。这样可以防止在首次加载网站后出现数据请求。在chrome开发工具中,转到application标签,然后在storage下,查找具有所需数据的密钥。如果存在,则可以清除存储,刷新,然后在获取数据的xhr选项卡中将看到fetchnetwork [1]请求。您可以右键单击该请求,然后将其复制为curl命令以直接请求数据而不会进行抓取。您可能会担心该服务会阻止其批准的Web前端之外的访问,但是cors不能阻止您,因为它仅适用于浏览器。

[1] fetch是自2015年以来改进的xhr

感谢@sideshowbarker指出我指向sessionStorage并回答了我的cors问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...