javascript - 屏幕抓取分页数据

标签 javascript ajax screen-scraping

我正在尝试获取从此网站搜索返回的所有可用商店的列表。

https://www.metropcs.com/find-store.html.html

问题是它一次仅返回 4 或 5 个,并且没有“查看全部”选项。我尝试使用 Chrome 中的 Post Man 和 Firefox 中的 AutoPager 来查看是否可以以某种方式查看后台的所有数据,但我无法做到。我还在研究 JSON 拦截工具,因为我相信该网站在返回集中使用 JSON,但我无法找到我需要的任何实际数据。

过去,我可以点击“打印预览”并以这种方式获取列表(然后我只需复制粘贴到 Excel 并运行一些自定义宏来删除我需要的数据),但打印机友好的版本已经消失了现在也一样。

关于工具有什么想法可以让我导出找到的所有商店,特别是对于较大的返回集?

最佳答案

您想要操纵此请求: https://www.metropcs.com/apps/mpcs/servlet/genericservlet

您会注意到页面将此(以及其他内容)作为请求发送到该 URL:

inputReqParam=
  {"serviceProviderName":"Hbase","expectedParams":
     {"Corporate Stores":...Truncated for clarity...},
   "requestParams":
     {"do":"json",
      "minLatitude":"39.89234063913044",
      "minLongitude":"-74.85258152641507",
      "maxLongitude":"-74.96578907358492",
      "maxLatitude":"39.979297160869564"
     },
   "serviceName":"metroPCSStoreLocator"}

您需要操纵纬度和经度边界框以包含您想要的区域。 (整个美国大概是 [-124.848974, 24.396308] 到 [-66.885444, 49.384358] )

在您最喜欢的浏览器中,应该很容易调整请求以获得符合您要求的 JSON 响应。

关于javascript - 屏幕抓取分页数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38133149/

相关文章:

javascript - 谷歌地图的 ng-bind 问题

python - 使用 BeautifulSoup 从字典中提取

javascript - 使用 PyQt 和 javascript 调用 "onclick"事件时出现问题

javascript - Cordova HTTP插件: postJSON not a function

javascript - JavaScript 中的变量声明

javascript - 值更改时 ng-model 不更新

javascript - 哪个建议最适合根据用户视口(viewport)调整布局?

javascript - 如何使用 JavaScript 预加载和缓存 URL/链接?

javascript - AWS S3 : should I use POST or PUT requests to upload a file?

c# - 使用 C# 中的 asp.net 表单登录屏幕抓取站点?