小编K M*_*lam的帖子

在JavaScript之前和之后使用Nokogiri和Ruby进行刮擦会更改值

我有一个程序可以从https://web.apps.markit.com/WMXAXLP?YYY2220_zJkhPN/sWPxwhzYw8K4DcqW07HfIQykbYMaXf8fTzWT6WKnuivTcM0W584u1QRwj中删除价值

我目前的代码是:

doc = Nokogiri::HTML(open(source_url))

puts doc.css('span.indexDate').text
date = doc.css('span.indexDate').text
date = Date.parse(date)
puts date
values = doc.css('table#CdsIndexTable td.col2 span')
puts values
Run Code Online (Sandbox Code Playgroud)

这正确地从"CDS索引"表中删除第二列的日期和值,这很好.现在,我想从"债券指数"表中搜索我遇到问题的类似值.

我可以看到JavaScript函数在不加载页面的情况下更改它而不更改页面的URL.这两个表之间的区别在于它们的ID是不同的,这正是应该的.但是,不幸的是,当我尝试:

values = doc.css('table#BondIndexTable')
puts values
Run Code Online (Sandbox Code Playgroud)

我从Bond Indexes表中得不到任何结果.但是如果我使用的话,我从CDS索引表中获取值:

values = doc.css('table#CdsIndexTable')
puts values
Run Code Online (Sandbox Code Playgroud)

如何从两个表中获取值?

javascript ruby nokogiri web-scraping

5
推荐指数
2
解决办法
8564
查看次数

如何在Java中生成一次密钥并在2个不同的程序中使用该密钥

我的目标是编写一个Java程序来加密文本文件(cipher text)AES algorithm.然后,编写另一个程序来解密该加密文件(cipher text)以获取纯文本.我想使用相同的密钥(相同的密钥,生成一次,保存在某处,并在加密和解密程序中使用它)进行加密和解密过程.如果我生成密钥并在同一程序中逐行进行加密和解密,那么它可以完美地工作.以下是该工作代码段:

        String strDataToEncrypt = new String();
        String strCipherText = new String();
        String strDecryptedText = new String();

        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128);
        SecretKey secretKey = keyGen.generateKey();

        Cipher aesCipher = Cipher.getInstance("AES");
        aesCipher.init(Cipher.ENCRYPT_MODE,secretKey);

        strDataToEncrypt = "any text input";
        byte[] byteDataToEncrypt = strDataToEncrypt.getBytes();
        byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt); 
        strCipherText = new BASE64Encoder().encode(byteCipherText);
        System.out.println("cipher text: " +strCipherText);
        aesCipher.init(Cipher.DECRYPT_MODE,secretKey,aesCipher.getParameters());
        byte[] byteDecryptedText = aesCipher.doFinal(new BASE64Decoder().decodeBuffer(strCipherText));
        strDecryptedText = new String(byteDecryptedText);
        System.out.println("plain text again: " +strDecryptedText);
Run Code Online (Sandbox Code Playgroud)

但是,我需要有两个不同的程序(java文件)进行加密和解密.所以,我必须以某种方式生成一个密钥并保存在某个地方.然后对加密和解密程序使用相同的密钥.我怎样才能做到这一点?

EDIT_1

KeyGenerator keyGen = …
Run Code Online (Sandbox Code Playgroud)

java cryptography aes secret-key

5
推荐指数
1
解决办法
4万
查看次数

rspec给出的错误`Then`在示例中不可用(例如`it`块)

我正在使用rspec-given并继续收到此错误.

故障/错误:然后{ Then从一个示例(例如,内不可用it块)或者从在一个例子(例如范围运行构建体before,let等).它仅适用于示例组(例如a describecontext块).

describe SchoolService do
  Given(:school) { create(:school_with_applications) }
  Given(:service) { School.new(@school) }

  describe 'create_default_programs_and_year_grades!' do
    it 'checks program size' do 
      When { service.create_default_programs_and_year_grades! }
      Then { expect(school.programs.size).to eq 3 }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails rspec-rails ruby-on-rails-4

5
推荐指数
1
解决办法
2982
查看次数

Rails导入CSV错误:UTF-8中的字节序列无效

invalid byte sequence in UTF-8尝试在我的Rails应用程序中导入CSV文件时出现错误.一切都运行良好,直到我添加了一个gsub方法来比较其中一个CSV列到我的数据库中的字段.

当我导入CSV文件时,我想检查每行的地址是否包含在特定客户端的不同地址的数组中.我有一个客户端模型,alt_addresses其中包含一些属性,其中包含客户端地址的几种不同格式.

然后我有一个引用模型(如果你熟悉本地搜索引擎优化你会知道这个术语).引文模型没有地址字段,但它有一个nap_correct?字段(NAP代表"名称","地址","电话号码").如果CSV行的名称,地址和电话号码与我在该客户端的数据库中的名称,地址和电话号码相同,则nap_correct?该引用的字段将设置为"正确".

以下是import我的引文模型中的方法:

def self.import(file, client_id)
  @client = Client.find(client_id)
  CSV.foreach(file.path, headers: true) do |row|
    @row = row.to_hash
    @citation = Citation.new
    if @row["Address"]
      if @client.alt_addresses.include?(@row["Address"].to_s.downcase.gsub(/\W+/, '')) && self.phone == @row["Phone Number"].gsub(/[^0-9]/, '')
        @citation.nap_correct = true
      end
    end
    @citation.name = @row["Domain"]
    @citation.listing_url = @row["Citation Link"]
    @citation.save
  end
end
Run Code Online (Sandbox Code Playgroud)

然后,这是alt_addresses我的客户端模型中的属性:

def alt_addresses
  address = self.address.downcase.gsub(/\W+/, '')
  address_with_zip = (self.address + self.zip_code).downcase.gsub(/\W+/, '')
  return [address, address_with_zip] …
Run Code Online (Sandbox Code Playgroud)

ruby csv ruby-on-rails utf-8 ruby-on-rails-4

5
推荐指数
1
解决办法
7743
查看次数

ActiveRecord destroy_all

在Rails 4.1中,ActiveRecord是否destroy_all在事务中包装整个函数?例如,如果我有一堆记录,我会对其进行destroy_all操作,并且它们会对这些单个对象运行一些回调,其中一个失败会导致整个操作在此时回滚吗?

ruby activerecord ruby-on-rails ruby-on-rails-4

5
推荐指数
1
解决办法
1692
查看次数

link_to disable_with 不禁用按钮

目前有以下按钮指向外部链接:

  <%= link_to('Connect Dwolla',
        @dwolla_link,
        class: 'btn btn-lg btn-warning',
        data: {disable_with: "<i class='fa fa-spinner fa-spin'></i> Redirecting to Dwolla.com..."}) %>
Run Code Online (Sandbox Code Playgroud)

单击按钮后,会出现微调器和文本,但不会禁用该按钮。

ruby-on-rails twitter-bootstrap ruby-on-rails-5 ruby-on-rails-6

4
推荐指数
1
解决办法
4972
查看次数

在Rails 4应用程序中添加新页面

我有新的Rails项目,在项目中我有一个控制器,视图和模型命名为Customer.现在,我需要的是除了CRUD我需要添加两个新页面的操作之外:

1. http://0.0.0.0:3000/Customer/sale

2. http://0.0.0.0:3000/Customer/lease
Run Code Online (Sandbox Code Playgroud)

我想在这些文件中插入代码.我如何实现这一点我的意思是创建新的salelease链接?

ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

4
推荐指数
1
解决办法
660
查看次数

Heroku的:你如何推到特定的应用程序,如果你有在Heroku的多个应用程序?

我使用创建一个新的heroku应用程序heroku create test-app3.现在,如果我想要把一些代码到这个新的test-app3,我该怎么做呢?

当我输入heroku list终端时,我得到:我的应用程序

  • test-app1
  • test-app2
  • test-app3

我如何推送test-app3?如何在要推送的应用程序之间切换?

ruby ruby-on-rails heroku ruby-on-rails-4 ruby-on-rails-5

4
推荐指数
1
解决办法
2686
查看次数

Heroku:PG :: ConnectionBad:无法连接到服务器:连接被拒绝

我尝试将新应用程序推送到heroku并出现此错误 PG::ConnectionBad: could not connect to server: Connection refused

这是我的gemfile,它与它有关吗?我正在使用邮政狂欢.我不确定,因为这是我第一次尝试在heroku中使用狂欢,但它似乎没有经历过.任何帮助,将不胜感激

source 'https://rubygems.org'

ruby "2.2.1"

gem 'puma', '~> 2.13.4'
gem 'braintree', '~> 2.48.1'
gem 'rails', '4.2.3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

    group :production, :staging do
        gem 'pg'
        gem 'rails_12factor', '~> 0.0.3'
    end


gem 'spree', '3.0.4'
gem 'spree_gateway', …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql ruby-on-rails heroku ruby-on-rails-4

4
推荐指数
1
解决办法
3971
查看次数

如何在机架级别阻止请求?

运行Rails4应用程序时,我经常看到机器人正在探究我是否正在运行Wordpress网站.我希望他们想要创建评论垃圾邮件或寻找Wordpress安全漏洞.

这是日志中的示例错误:

ActionController::RoutingError (No route matches [GET] "/wp-login.php")
Run Code Online (Sandbox Code Playgroud)

什么是Rack中间件的简单示例,我可以阻止此http请求?我如何命名文件以及它在Rails应用程序中的位置?

谢谢!

rack middleware ruby-on-rails rack-middleware ruby-on-rails-4

4
推荐指数
1
解决办法
1023
查看次数