【发布时间】:2010-10-18 05:56:56
【问题描述】:
我有一个小型爬虫/屏幕抓取脚本,半年前可以工作,但现在,它不再工作了。我检查了页面源中reg表达式的html和css值,但它们仍然相同,所以从这个角度来看,它应该可以工作。有什么猜测吗?
require "open-uri"
# output file
f = open 'results.csv', 'w+'
# output string
results = ""
begin
# crawl first 20 pages
for i in (1..20)
open("http://www.example-#{i}.com") {|url|
# check each line using regular expression
url.each_line { |line|
if line =~ /class=\"L1g\" onclick=\"s_objectID=\'foobar\'\">([^<]+)<\/a><\/h3><\/li>/
# if regular expression matches then add to results
results += $1 + "\n"
end
}
}
end
ensure
# write to and close file
f.print results
f.close
end
【问题讨论】:
-
你说它不起作用的地方,会发生什么?
-
+1 用于破坏 Stack Overflow 的语法高亮。它会产生什么异常消息?另外,您是否尝试过How do I debug ruby scripts? 中提到的任何调试方法
-
所以页面和往常一样,过去一直有效。你升级 Ruby 了吗?
-
您是否尝试将其关闭再打开?
-
大家好,感谢 cmets 并为迟到的答复感到抱歉。该脚本成功运行,但会生成一个空的 csv 文件。我还没有尝试调试。由于它没有产生任何错误消息,我想我可以跳过它。我访问了该网站并交叉检查了相关的 url,但它仍然是一样的。 @Lars您将其关闭和打开是什么意思?顺便说一句:是否有打破语法高亮的徽章? ;)
标签: ruby screen-scraping web-crawler web-scraping