我正在开展一个网络抓取项目,通过Rapidminer 5/6中的文本挖掘来分析各种众筹网站的项目。我已经构建了一个工作文本分析器,但我陷入了网络爬行部分。问题是Web爬网程序会抓取所请求的站点,但不会存储它们。我尝试过尝试页面大小,深度等,但程序仍然只是跳过这些网站。问题可能出在我的存储规则上。当他们试图爬过Kickstarter的网站时,它们看起来如下:
跟随匹配的网址:
+ Kickstarter的。+
使用匹配的网址存储:
https://www\.kickstarter\.com\/projects.+
http://www\.kickstarter\.com\/projects.+
(?i)http.*://www\.kickstarter\.com\/projects.+
需要存储的示例网址为:
http://www.kickstarter.com/projects/corvuse/bhaloidam-an-indie-tabletop-storytelling-game?ref=spotlight
(没有广告意图)
日志如下所示:
Mar 12, 2014 11:50:37 AM INFO: Following link http://www.kickstarter.com/projects/corvuse/bhaloidam-an-indie-tabletop-storytelling-game?ref=spotlight
Mar 12, 2014 11:50:37 AM INFO: Following link http://kickstarter.tumblr.com/post/12036057734/todays-project-of-the-day-is-bhaloidam-an-indie
Mar 12, 2014 11:50:37 AM INFO: Following link http://kickstarter.tumblr.com/tagged/bhaloidam
Mar 12, 2014 11:50:38 AM INFO: Discarded page "http://kickstarter.tumblr.com/post/79165806431/do-you-like-coloring-and-also-have-questions" because url does not match filter rules.
正如你所看到的,它贯穿整个过程,只是跳过这些链接,它甚至没有说它与过滤规则不匹配所以它被丢弃了,所以我甚至不确定在这些情况下,程序会比较规则的链接。我看到日志中有很多链接(“以下链接......”),但很少有前面的链接(“Discarded page ...”)。这是否意味着它只是检查几页,或者只是它不会通知我每个丢弃的页面?我可以手动保存这些项目的站点,但可以理解的是,我不想对数百个站点进行此操作。
我还为Indiegogo建立了一个模型,如果我只使用第三个存储规则(并删除前两个),同样的模型也可以工作。所以我认为这也是我的Kickstarter模型的问题,但也没有这样的运气。
提前致谢!
干杯
答案 0 :(得分:1)
您只能有一个商店规则。这就是为什么当你只有第三个正则表达式时它才有效。但是,您可以将三个商店的正则表达式合并为一个:
https://www\.kickstarter\.com\/projects.+|http://www\.kickstarter\.com\/projects.+|(?i)http.*://www\.kickstarter\.com\/projects.+
有趣的项目,顺便说一句。如果您能给我们发邮件并告诉我们更多信息,那就太棒了。