Python:抓取 CSV 文件请求

Python: Scraping a CSV file request

经常潜伏在这里的人:我通常会在这里找到我的问题的答案。然而,我遇到了一个可能让我望而却步的简单但模糊的项目。我是 Python 的新手(目前使用的是 3.6 版)。

我正在查看:https://www.ishares.com/us/products/239726/

据我所知,这里涉及一些 jquery 内容:查看页面的 "Holdings" 部分附近。如果选择 'All',而不是选择 'Top 10',则有一个选项可以获取馆藏 'as of.'

如果选择了特定的历史月份,则会创建下载 .csv 的提示。我想要做的是获取从下拉列表生成的每个 csv 文件,追溯到 2006 年 9 月 29 日。换句话说,自动下载为通过此下拉列表给出的每个请求生成的 .csv 文件.

为了提供一些(不一定相关的)上下文,我熟悉 pandas 和 bs4,也许还有其他一些不太流行的库。作为背景,我保留了一些案头参考资料:Magnus Lie Hetland 的 'Beginning Python' 和 Wes McKinney 的 'Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython'。

我想要一些关于如何处理这个我可能忽略的问题的小指导。换句话说,面包屑是有帮助的,但不是要求任何人为我完成所有这些工作。我想尽可能多地探索和学习。

我应该使用什么libraries/methods?我知道这是完全开放式的,所以我想尽可能坚持使用 bs4 和 Pandas。其他图书馆也有帮助,但那些将是重点。

谢谢!

I would like some small direction on how to approach this issue

使用浏览器的开发人员工具,检查正在发出的网络请求。您会看到,当您选择一个历史月份时,会发出一个请求。如果您从该请求中复制 URL,您可以将其粘贴到您的浏览器中,看看您是否可以 "replay" 该请求以获取负载。我测试过,你可以。更重要的是,您可以非常清楚地看到查询参数。他们没有混淆。这意味着您可以以编程方式生成 URLs,然后您可以在

上使用 cURL 或 wget

请注意,我尝试指定 "csv" 的文件类型并得到空响应,但是当我请求 "json" 的文件类型时,我得到了数据。 YMMV。祝你好运!