Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 抓取推文-更好地使用网站或api?_Ruby_Api_Twitter_Screen Scraping - Fatal编程技术网

Ruby 抓取推文-更好地使用网站或api?

Ruby 抓取推文-更好地使用网站或api?,ruby,api,twitter,screen-scraping,Ruby,Api,Twitter,Screen Scraping,我正在使用twittergem在Ruby中构建一个twitter机器人。我正试图让它能够自我维持,所以我希望它能够通过抓取社交圈外用户的推文来生成自己的推文内容(然后可能会用马尔可夫链生成器将其混淆) 哪一个是更好的策略 通过api搜索推文 使用Hpricot或Nokogiri 此外,我如何确保基本推文来自我的机器人追随者的朋友之外,因此很难判断它是机器人 目前,我使用的是一个.yml文件,其中包含我手工生成的推文,这远远不理想。这里有两个问题 在有API的地方使用API总是更好的。如果一个

我正在使用
twitter
gem在Ruby中构建一个twitter机器人。我正试图让它能够自我维持,所以我希望它能够通过抓取社交圈外用户的推文来生成自己的推文内容(然后可能会用马尔可夫链生成器将其混淆)

哪一个是更好的策略

  • 通过api搜索推文
  • 使用
    Hpricot
    Nokogiri
此外,我如何确保基本推文来自我的机器人追随者的朋友之外,因此很难判断它是机器人


目前,我使用的是一个
.yml
文件,其中包含我手工生成的推文,这远远不理想。

这里有两个问题

在有API的地方使用API总是更好的。如果一个简单的html元素被更改,这将证明你不会被机器人随机破坏,并且它还将允许网站(即twitter)在你对服务负载过高的情况下限制你的搜索。虽然这对twitter来说不太可能,但这是一个很好的实践

有时,您想要的信息无法通过API获得。在这种情况下,你应该考虑如果你真的需要擦除它,如果是这样,如何限制自己是礼貌的。 基本上,如果API允许您做您想做的事情,那么为了可维护性使用它

至于你的第二个问题,我对twitterapi没有任何经验。有没有一种方法可以获取你所有追随者的twitter ID,以及他们的追随者是谁?如果没有,你将被迫像前面提到的那样去刮——如果你真的需要这些信息的话

一旦你有了追随者的名单,你就可以检查你想要转载的海报的ID是否在这个集合中


<> P>你会考虑BOT的这一方面吗?

< P>还有一点值得注意的是性能。如果您要刮取网站,您必须下载整个页面,然后刮取页面(这是处理器密集型的)。与只返回JSON/XML数据的API相反


因此,从严格的性能角度来看,我会使用API。

因此,您希望我们帮助您编写twitter垃圾邮件机器人。祝你好运-1它比这要复杂一点。我正在为我的最终学位项目写一个机器人,研究机器人与人类的关系。为了实验的目的,它至少需要一周的可信度,垃圾邮件用户帮不了我。我忘了说我明白你的观点。否定Rein Henrichs'-1。大多数推特垃圾机器人都不涉及人工智能。嗨,我还没有考虑到未来证明这一点。是的,有一种方法可以获取我所有追随者的ID,因此检查他们追随者的ID是可能的,尽管我认为这相当耗时。我想避免转发,而是将推文用作生成新推文的基础。是的,我看到你的评论解释了原因。你应该能够通过hashmap或类似的工具来加速ID查找。谢谢,这是一个非常好的观点,尽管我接受了这个答案,它指出了随着时间的推移可能会出现问题。