我正在尝试单击主页上的“设置”按钮,但是当我这样做时,我会返回此页面:
#<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 和框架的东西可能有问题吗?
我正在尝试单击主页上的“设置”按钮,但是当我这样做时,我会返回此页面:
#<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 和框架的东西可能有问题吗?
正如 roja 所提到的,您可能需要以下重定向。以下是如何执行此操作的示例:
@agent = Mechanize.new
@agent.redirect_ok = :all
@agent.follow_meta_refresh = :anywhere
然后您几乎可以忽略涉及重定向的事实 - Mechanize 只会将您放在结果页面上。
Facebook 将我重定向到:https ://register.facebook.com/editaccount.php ,我认为这是最终目的地。假设 WWW::Mechanize 设置为遵循 https 重定向,您也应该最终到达那里。
像大多数现代网站一样,大部分 facebook 都是由 javascript 生成的,我认为 WWW::Mechanize 无法应对,这可能是您问题的根源。我建议在您访问的 url 附加“?_fb_noscript = 1”时尝试抓取。这会关闭大部分 facebooks javascript 系统,并且应该为您的小机器人提供更顺畅的旅程。
(请记住,这只是一个想法,毫无疑问,您所做的任何事情都违反了 Facebook 的使用政策,这使您成为“坏人”。我不容忍这种坏事,并相信应该强迫坏人早睡等......恶心)