gpt4 book ai didi

ruby - Mechanize 'link_with' 产生不同的 URL

转载 作者:行者123 更新时间:2023-12-04 16:21:13 29 4
gpt4 key购买 nike

我访问了一个包含此链接的页面:

<a class="portletpage-portlet-title is-active" tabindex="0" title="Registration" data-ppid="registration_WAR_registration" href="#registration">Registration</a>

该页面使用 SSL 加密。 HTML 属性 href#registration .我正在尝试按照此链接获取 URL:
www.redacted.com/#registration

这是我的代码:
agent.get('*redacted*'). do |page|
page.form_with(:action => '*redacted*') do |f|
f.field_with(:id => 'username').value = get_username()
f.field_with(:id => 'password').value = get_password()
end.click_button

agent.page.link_with(:text => 'Registration').click

当它点击链接时,它会产生以下错误:
`fetch': 404 => Net::HTTPNotFound for https://*redacted*/group/1403104853945/academics?p_p_id=registration_WAR_uofsregistration&p_p_state=maximized -- unhandled response (Mechanize::ResponseCodeError)
from /home/mike/.rvm/gems/ruby-2.4.1/gems/mechanize-2.7.5/lib/mechanize.rb:464:in `get'
from /home/mike/.rvm/gems/ruby-2.4.1/gems/mechanize-2.7.5/lib/mechanize.rb:348:in `click'
from /home/mike/.rvm/gems/ruby-2.4.1/gems/mechanize-2.7.5/lib/mechanize/page/link.rb:30:in `click'
from u-of-s-scraper.rb:34:in `<main>'

并提供了 URL:
www.redacted.com/group/1403104853945/academics?p_p_id=registration_WAR_uofsregistration&p_p_state=maximized

我不确定 Mechanize 在哪里获取 URL。该链接有一个属性 data-ppid ,这似乎对 URL 有贡献。任何人都可以提供一些见解吗?

事实证明,该页面是使用 Liferay 的 Portlets 编写的。不幸的是,Portlet 不能直接通过 URL 访问,因此我目前正在研究一种不同的抓取页面的方法 - 可能使用 Selenium 或 PhantomJS。

最佳答案

data-ppid是一个数据属性,应该由 JavaScript 处理。 URL 的更改可能是由于客户端的一些 Javascript 代码(以及服务器端的重定向)。

关于ruby - Mechanize 'link_with' 产生不同的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048137/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com