当前位置: 首页 > 知识库问答 >
问题:

如何搜索网站投资获取股票的每一个技术分析

皇甫夕
2023-03-14
    null

下面是一张查看我想获取的数据的图像: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刮数据。如果没有,哪些工具可以完成这项工作?

多谢!

共有1个答案

高鸿振
2023-03-14

我不认为这正是你要找的,但它可能会让你更近一点。

使用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样式不同,系统提供了三种常用