下面是一张查看我想获取的数据的图像:https://I.ibb.co/mhpm0yw/capture-d-e-cran-2019-08-14-a-00-15-45.png
url是https://investing.com/equities/credit-agricole-technical
当您导航到浏览器时,期间被设置为“每小时”,您必须单击另一个期间才能获得正确的数据。DOM在XML请求之后更新。
我试着用Mechanize刮,点击“Weekly”,让DOM刮它,但我得到了一个错误
下面是我的代码:
def mechanize_scraper(url)
agent = Mechanize.new
puts agent.user_agent_alias = 'Mac Safari'
page = agent.get(url)
link = page.link_with(text: 'Weekly')
new_page = link.click
end
url = "https://investing.com/equities/credit-agricole-technical"
mechanize_scraper(url)
以下是错误:
<li pairid="407" data-period="week" class="">
<a href="javascript:void(0);">Weekly</a>
</li>
def watir_scraper(url)
Watir.default_timeout = 10
browser = Watir::Browser.new
browser.goto(url)
link = browser.link(text: /weekly/).click
pp link
end
url = "https://investing.com/equities/credit-agricole-technical"
watir_scraper(url)
40:摘自第47页:在''
39:摘自app.rb:32:在'watir_scraper'中
38:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/watir-6.16.5/lib/watir/elements/element.rb:145:在`单击‘中
35:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/common/element.rb:74:在`单击‘中
34:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/w3c/bridge.rb:371:在'click_element'中
33:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/w3c/bridge.rb:567:在`执行‘中
32:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/bridge.rb:167:在`execute'中
31:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/http/common.rb:64:在`调用‘中
30:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/http/default.rb:114:在“请求”中
29:from/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/http/common.rb:88:in'create_response‘
28:来自/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/http/common.rb:88:在`新建‘中
27:from/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/response.rb:34:in'initialize'
26:from/users/remicarette/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/selenium-webdriver-3.142.3/lib/selenium/webdriver/remote/response.rb:72:in'assert_ok'
25:from 25 libsystem_pthread.dylib 0x00007fff5aaa440d thread_start+13
24:from 24 libsystem_pthread.dylib 0x00007fff5aaa8249_pthread_start+66
22:从22 chromedriver 0x000000010B434E67 chromedriver+3673703
21:从21 chromedriver 0x000000010B416014 chromedriver+3547156
20:从20 chromedriver 0x000000010B3E0F07 chromedriver+3329799
16:从16 chromedriver 0x000000010B3F8940 chromedriver+3426624
15:从15 chromedriver 0x000000010B3ECC1F chromedriver+3378207
14:从14 chromedriver 0x000000010B0CE8A5 chromedriver+108709
10:从10 chromedriver 0x000000010B0F1C4E chromedriver+253006
9:从9 chromedriver 0x000000010B0CFA66 chromedriver+113254
8:从8 chromedriver 0x000000010B0F1A72 chromedriver+252530
4:从4 chromedriver 0x000000010B0D8D19 chromedriver+150809
3:从3 chromedriver 0x000000010B0DA569 chromedriver+157033
2:从2 chromedriver 0x000000010B15FCEF chromedriver+703727
1:从1 chromedriver 0x000000010B3BF133 chromedriver+3191091 0x000000010B42F129 chromedriver+3649833:元素单击拦截:元素...在点(544,704)不可单击。其他元素将收到click:...(Selenium::WebDriver::Error::ElementClickInterceptedError)(会话信息:chrome=76.0.3809.100)
我希望一切能帮助你理解我的问题。我想知道我是否可以用Mechanize或WATIR刮数据。如果没有,哪些工具可以完成这项工作?
多谢!
我不认为这正是你要找的,但它可能会让你更近一点。
使用HTTP嗅探器,发现您试图单击的链接生成了一个帖子。该帖子的回应可通过以下方式获得:
def mechanize_poster(url)
agent = Mechanize.new
headers = {
'X-Requested-With' => 'XMLHttpRequest',
'User-Agent' => 'Mac Safari',
'Content-Type' => 'application/x-www-form-urlencoded',
'Referer' => 'https://www.investing.com/equities/credit-agricole-technical'
}
fields = {
period: 'week',
viewType: 'normal',
pairID: '407'
}
page = agent.post(url, fields, headers)
p page
end
我认为您需要使用一些Nokogiri来获取数据值。
问题内容: 我在WAR中打包了一组图像,并在using中对其进行了描述。图像位于文件夹中。我希望能够选择一个图像,并在提交时将该图像的副本保存到磁盘上。 如何才能做到这一点?如何获得对此图像的参考(或其他参考)? 问题答案: 鉴于此文件夹结构, 您可以通过采用相对于webcontent的路径之一来获取它: 或通过其中获得- 的相对路径: 关于选择图像并传递其路径,只需执行以下操作:
Drupal允许搜索您网站上的特定内容。 您可以在网站上搜索用户和文字。 我们将在以下步骤中指定如何在Drupal中设置站点搜索 - Step 1 - 转到“ Configuration ,然后单击“ SEARCH AND METADATA部分下的“ Search settings链接。 Step 2 - 搜索引擎维护您网站内容中的字词索引。 您可以调整索引行为,如以下屏幕所示。 Indexing
问题内容: 我对使用 Python 编程很 陌生 。 我想制作一个将从Google Finance 获取股票价格* 的应用程序。一个示例是CSCO (思科系统) 。然后,我将使用该数据 在库存达到一定值时向用户发出警告 。它还需要 每30秒刷新一次 。 __ *** 问题是我不知道如何获取数据! 谁有想法? 问题答案: 该模块由CoreyGoldberg提供。 程序: 用法示例: 更新 :更改了正
我正在用java编写一个程序,在一个.txt文件中搜索单词列表(事务编号)。txt文件可以有任意行数。 有没有办法处理这种情况?
问题内容: 因此,我使用RequireJS和Socket.io编写了一个应用程序,该应用程序检查socket.io资源是否可用,然后在连接时引导该应用程序。万一socket.io暂时关闭,我想对资源进行几次requireJS轮询,直到可用为止,然后继续初始化应用程序。 不幸的是(或者幸运的是?)似乎有某种缓存机制要求require为未加载的脚本注册脚本错误,因此,如果您在错误回调中执行setTim
一、简介 系统的投票功能提供了两种投票类型,第一个是单选投票.第二种是多选投票.网站编辑人员可以根据实际的需求,选择类型进行操作。 何处使用投票: 常用于首页、内容页、及专题页面。所有你想放投票的区域。 如何使用: 只需要根据投票所放位置不同,复制对应代码到模版里即可。 系统信息发布页 和 专题管理内置提供了投票选择功能,只需手动点选,即可添加投票。 针对不同位置CSS样式不同,系统提供了三种常用