首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >爬行页面,它需要使用Anemone登录。

爬行页面,它需要使用Anemone登录。
EN

Stack Overflow用户
提问于 2016-04-16 07:26:41
回答 2查看 710关注 0票数 2

我使用Anemone宝石的方式如下:

  • 访问first url (seed),将页面内容保存到数据库,并将该页的所有链接保存到数据库(所有尚未在数据库中的链接)
  • 从数据库加载下一个链接,再次保存其内容和任何其他链接
  • 如果没有其他链接,请再次抓取所有链接(一段时间后),以新的方式覆盖旧内容。

这是很好的工作,但有没有任何可能的抓取页面,需要登录(如果我知道用户名和密码)?我知道机械创业板,它提供了填写表格的功能,但我不知道如何在我的过程中集成它(如果可能的话)。或者,还有其他方法可以“在”登录表单后面爬行页面吗?

EN

回答 2

Stack Overflow用户

发布于 2016-04-19 16:15:00

在您的情况下,我建议使用以下解决方案之一:

因为这两种解决方案允许您填写表单,单击web元素,并执行任何默认的internet用户操作。这是不可能的情况下机械化宝石。

票数 0
EN

Stack Overflow用户

发布于 2018-06-03 13:04:39

您可以使用机器自动登录过程,然后保持它的会话来做下一步您想做的事情。

下面是我的示例代码:

代码语言:javascript
复制
require 'mechanize'

module YourModuleName
  class YourClassName
      attr_reader :agent

      def call
        @agent = Mechanize.new
        page = @agent.get(@login_page)
        form = page.forms.first
        form.field_with(id: LoginConstant::CSS[:user_email]).value = 
        LoginConstant::USER_NAME
        form.field_with(id: LoginConstant::CSS[:user_password]).value = LoginConstant::PASSWORD
        form.submit
        self
      end
  end
end

然后在代码中爬行请求登录的页面,如下所示:

代码语言:javascript
复制
response = YourModuleName::YourClassName.new('<your_login_page>').call
response.agent.get('<your_page_to_want_cralwer>')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36661388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档