我想下载一些Yahoo Groups(文件,照片,消息,成员列表),我发现了这些脚本:
我从CPAN下载了ActivePerl和所需的模块(没什么特别的;它们很容易找到)。我已经设法安装它们,但是当我运行脚本时,它告诉我我已成功登录后收到错误: “在模式匹配中使用未初始化的值$ cell(m //),在yahoogroups_files.pl第244行第2行。”
我猜雅虎改变了页面的布局或者其他东西,但是我无法自己更新脚本。我是Perl的新手,了解雅虎生成页面的方式,我只知道一些基本的C ++。我想提一下,我不是懒惰,我会尝试自己解决,但我需要你的帮助:提示,建议,任何事情。
PS:我已经联系了作者,但他不愿意更新脚本。
答案 0 :(得分:3)
您需要以下领域的知识:
使用html解析器
http知识(get / post / head)
网页抓取
我建议您专注于WWW::Mechanize因为它能够完成所有这些事情(以及更多)
编辑:另一个解决方案(不需要编程),是:在浏览器上登录yahoo组,存储cookie,然后运行wget,将存储的cookie作为参数传递。通过这种方式,您可以非常快速地完成任务。在硬盘上找到浏览器的cookies.txt文件,然后像这样调用wget(如果我记得正确的命令):
wget --load-cookies path_to_cookie_file -r -w 60 website
可以找到完整的手册页here
EDIT2:另一种选择是使用WebDriver来自动化Firefox。您可以使用this article作为如何完成此操作的指南。
答案 1 :(得分:1)
通过文件名我假设您使用的是Yahoo Group archiver:http://sourceforge.net/projects/grabyahoogroup/
我针对SubEthaEdit组运行了文件脚本,效果很好。所有文件都是无故障下载的。
如果$ cells为空,在while循环中处理html表时,看起来像barf这样的代码。
考虑到代码在我测试时确实有效,可能会出现该组文件列表的内容。您将要尝试输出$ content并找出243上的正则表达式无法处理该html的位置和原因。
编辑:如果你不介意发布这个组,我发现我确信自己或其他人可以自己试一试并排除故障。当问题无法复制时,很难确定怎么了上升的。此外,尝试我做的同一组,看看它是否适合你。当然,如果可行的话,你正在尝试的那些小组。
答案 2 :(得分:0)
Dunno,如果它会帮助你,但这是我为了让消息下载工作所做的:
http://sourceforge.net/forum/forum.php?thread_id=3283915&forum_id=209170
(我只使用了消息下载,我没有看文件下载)
答案 3 :(得分:0)
答案 4 :(得分:0)
grabyahoogroup在最新版本中效果很好,可以在svn repo找到:
http://grabyahoogroup.svn.sourceforge.net/viewvc/grabyahoogroup/trunk/yahoo_group/
sourceforge.net/projects/grabyahoogroup/files/上的版本有BUAS而且不适合我。
答案 5 :(得分:0)
我一直在寻找一种从Yahoo Groups收集消息/对话的工具!我终于找到了这个工具来转换你的Yahoo!在尝试自己创建并在互联网上随处搜索之后,将消息分组为MBOX格式。
以下两项都是Google Chrome扩展程序。
在2010年9月16日的某个时间(至少对我来说),检索到的消息不再是纯文本,而是Base 64二进制数据(ASCII)。使用此swiss converter tool可以让您按原样读取数据。
VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZy4=
The quick brown fox jumps over the lazy dog.
答案 6 :(得分:0)