使用Curl刮擦多个页面

时间:2013-09-18 15:38:59

标签: linux curl web-scraping

我正在尝试从具有特定模式的网址的网站中删除数据。具体来说,它们是这样的:

http://msn.com/21-05-2013/data
http://msn.com/22-05-2013/data

现在您可以看到URL中唯一更改的是日期。是否有卷曲命令,我可以告诉我的日期范围,它会为我检索数据?

我查看了官方文档和Stackoverflow,但没有找到任何直接相关的内容。

2 个答案:

答案 0 :(得分:1)

您可以使用bash的数字扩展来获取所有相关网址。

E.g:

 http://msn.com/{01..31}-{01..12}-2013/data

将扩展到2013年的所有日期(某些无效日期,如31-02)

并且更为明确的界限:

http://msn.com/{15..28}-02-2013/data http://msn.com/{1..14}-03-2013/data

答案 1 :(得分:0)

你可能想要bash中的for循环,而不是curl中的东西。这样的事情会在2013年5月的所有日子里重复:

for day in $(seq 1 1 31); do
    url=$(printf "http://msn.com/%02d-05-2013/data" $day)
    curl $url
done