使用 wget 从 index.html url 下载文件列表

Downloading a list of files using wget from an index.html url

我正在学习数据分析课程,其中一部分需要下载文件列表。我花了更多时间试图弄清楚如何使用 wget 来做到这一点,我本可以单独下载它们,但现在它已成为一种学习体验。这是文件 url

https://divvy-tripdata.s3.amazonaws.com/index.html

每个文件都是一个 zip 文件,所以我尝试使用

wget -r -l1 -H -t1 -nd -A.zip -erobots=off https://divvy-tripdata.s3.amazonaws.com/ 和 /index.html

但每次它下载的唯一文件是 index.html.tmp,然后自动删除。有什么想法吗?

解决方案:经过太多时间后,我意识到该页面正在使用 jquery 显示链接,因此 get 实际上无法找到 index.html 上的链接。使这项工作的解决方案如下:

wget https://divvy-tripdata.s3.amazonaws.com/ -q -O - |

这会从 index.html 页面中提取 XML 数据

grep -Eoi '<Key>[^>]+</Key>' |

除去包含文件名的关键标签以外的所有内容,并且是URL下载文件的正确结尾

grep -Eoi '[2D].*.zip' |

所有需要的文件都以 2 或 D 开头,这仅提取文件名并去除标签。

sed 's/^/https\:\/\/divvy\-tripdata.s3.amazonaws.com\//' > linksfinal.txt

添加到 URL 的第一部分并保存到文本文件中。

wget -i linksfinal.txt

使用文件中新形成的链接运行 wget,下载所有文件都没有问题。

解决方案:经过太多时间后,我意识到该页面正在使用 jquery 显示链接,因此 get 实际上无法找到 index.html 上的链接。使这项工作的解决方案如下:

wget https://divvy-tripdata.s3.amazonaws.com/ -q -O - |

这会从 index.html 页面中提取 XML 数据

grep -Eoi '<Key>[^>]+</Key>' |

除去包含文件名的关键标签以外的所有内容,并且是 URL 下载文件的正确结尾

grep -Eoi '[2D].*.zip' |

所有需要的文件都以 2 或 D 开头,这只提取文件名并去除标签。

sed 's/^/https\:\/\/divvy\-tripdata.s3.amazonaws.com\//' > linksfinal.txt

添加到 URL 的第一部分并保存到文本文件中。

wget -i linksfinal.txt

使用文件中新形成的链接运行 wget,下载所有文件没有问题。