如何使用curl或wget下载网页?

19

我希望能创建一个每晚的定时任务,获取我的stackoverflow页面并与前一天的页面进行比较,以便查看我的问题、答案、排名等变化摘要。

不幸的是,我无法获取正确的cookie等设置来使其正常工作。有什么想法吗?

此外,当Beta测试结束后,我的状态页面是否可以在未登录情况下访问?

5个回答

9

现在您可以在未登录的情况下访问您的状态页面(点击注销并尝试)。当beta-cookie被禁用时,您和您的状态页面之间将没有任何障碍。

对于wget:

wget --no-cookies --header "Cookie: soba=(LookItUpYourself)" https://stackoverflow.com/users/30/myProfile.html

6

来自Mark Harrison

以下是可行的方法...

curl -s --cookie soba=. https://stackoverflow.com/users

wget的方法:

wget --no-cookies --header "Cookie: soba=(LookItUpYourself)" https://stackoverflow.com/users/30/myProfile.html

3
很不错的想法 :)
我猜你已经使用过wget的。
--load-cookies (filename)

这可能有一定帮助,但更简单的方法是使用类似于Perl或Python中的Mechanize来模拟浏览器,以完全模拟爬虫。


2

以下是有效的解决方案...

curl -s --cookie soba=. http://stackoverflow.com/users

2

我也无法弄清楚如何使cookie工作,但在退出登录时,我能够通过浏览器访问我的状态页面,因此我认为一旦stackoverflow公开,这将起作用。

这是一个有趣的想法,但您不会同时获取基础html代码的差异吗?您是否有避免最终得到html而不是实际内容差异的策略?


如果我有时间,我会编写一个Beautiful Soup(或者更好的东西?)脚本来优雅地抓取数据,但现在我只是用grep命令提取我需要的文本行。 - Mark Harrison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接