Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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
Facebook中的ruby mechanize_Ruby_Facebook_Screen Scraping_Mechanize - Fatal编程技术网

Facebook中的ruby mechanize

Facebook中的ruby mechanize,ruby,facebook,screen-scraping,mechanize,Ruby,Facebook,Screen Scraping,Mechanize,我正试图单击主页上的“设置”按钮,但当我单击该按钮时,我将返回此页面: #<WWW::Mechanize::Page {url #<URI::HTTP:0x1023c5fc0 URL:http://www.facebook.com/editaccount.php?ref=mb&drop>} {meta} {title nil} {iframes} {frames} {links} {forms}> # 那就是。。有点空!这些iFrame和Frame的东

我正试图单击主页上的“设置”按钮,但当我单击该按钮时,我将返回此页面:

#<WWW::Mechanize::Page
 {url
  #<URI::HTTP:0x1023c5fc0 URL:http://www.facebook.com/editaccount.php?ref=mb&drop>}
 {meta}
{title nil}
{iframes}
{frames}
{links}
{forms}>
#
那就是。。有点空!这些iFrame和Frame的东西可能有问题吗?

Facebook将我重定向到:我认为这是最终目的地。假设WWW::Mechanize设置为跟随https重定向,您也应该在那里结束

与大多数现代网站一样,facebook的大部分网站都是由javascript生成的,我认为WWW::Mechanize无法处理这些问题,这可能是问题的根源。我建议在您访问的url中添加“?\u fb\u noscript=1”时尝试刮取。这将关闭facebooks javascript系统的大部分功能,并为您的小机器人提供更顺畅的运行


(请记住,这只是一个想法,毫无疑问,你所做的一切都违反了facebooks的使用政策,这让你成为了一个“坏家伙”。我不容忍这种坏行为,认为坏家伙应该被迫早睡等等……这是一种怪癖)

正如roja提到的,以下重定向可能是你所需要的。下面是一个如何做到这一点的示例:

@agent = Mechanize.new
@agent.redirect_ok = :all
@agent.follow_meta_refresh = :anywhere

然后,您可以忽略一个事实,即其中涉及到重定向-Mechanize只会将您放在结果页面上。

我注意到它在https连接上执行某种重定向。。。我想这就是问题所在。。你觉得怎么样?=)我只是想通过编程关闭我的电子邮件通知,这样当我收到太多通知时,我会暂时禁用它们。。顺便说一句,我在Mechanize RDoc中没有发现https。。那么,默认情况下是否设置为遵循https重定向?如果其他人提供了最充分的答案,最好编辑他们的答案(当您的代表足够高时),或者在没有太多参考的情况下提供最正确的答案。。。。i、 你自己的答案要完整。谢谢你的提示;我已经将这个例子应用到了Roja的初始答案中。