質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

1回答

1118閲覧

`open_http': 400 Bad Request (OpenURI::HTTPError)について

yuzujoe

総合スコア49

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2019/08/07 11:49

編集2019/08/14 04:28

現在VPSサーバ上にjenkinsを置いてrubyプログラムを動かしているのですがその際にタイトルのエラーがおきまして質問させていただきます

詳細はこちら

/var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:377:in `open_http': 400 Bad Request (OpenURI::HTTPError) from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:755:in `buffer_open' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:226:in `block in open_loop' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:224:in `catch' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:224:in `open_loop' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:165:in `open_uri' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:735:in `open' from /var/lib/jenkins/.rbenv/versions/2.5.1/lib/ruby/2.5.0/open-uri.rb:35:in `open' from .rb:17:in `block (2 levels) in <main>' from .rb:13:in `each' from .rb:13:in `block in <main>' from .rb:12:in `open' from .rb:12:in `<main>' Build step 'Execute shell' marked build as failure Archiving artifacts Finished: FAILURE

該当のコードはこちらになります

def scraping(keyword) submit_keyword(keyword) @agent.page.search('div.g').map do |node| title = node.search('a') next if title.empty? query = URI.decode_www_form(URI(title.attr("href")).query) url = query[0][1] snipped = node.search('div.s > span.st') next if snipped.empty? || snipped.children.empty? { url: url, title: expect_tag(title.children.to_html), } end.reject do |list| list.nil? end end query = URI.decode_www_form(URI(title.attr("href")).query) def submit_keyword(keyword) @agent = Mechanize.new @agent.user_agent_alias = USER_AGENT @agent.get('https://www.google.co.jp/') @agent.page.form_with(name: 'f') do |form| form.q = keyword end.submit end def expect_tag(string) string.gsub(/(<b>|</b>|<br>|</br>|\R)/, '') end

Googleにアクセスしてキーワードを抽出するプログラムなのですがローカルでは動いておりましてvps上では動いていないので何かjenkinsや他に同様のエラーで知見のある方がいらっしゃいましたらご教授いただけますと幸いです

よろしくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

そのVPSからGoogleへのアクセスは許可されていますか?

投稿2019/08/13 00:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuzujoe

2019/08/13 23:47

コメントありがとうございます。 私の知識不足なのですがVPSからのアクセス権の見方ご存知でしたらご教授いただけますでしょうか?
退会済みユーザー

退会済みユーザー

2019/08/14 00:34

> VPSからGoogleへのアクセス状況について いろいろな方法はありますが、まずは以下のコマンドを実行してみて 200 が返ってくるのを確かめるとよいと思います。 $ curl -I https://www.google.co.jp/
yuzujoe

2019/08/14 00:40

ありがとうこざいます ``` $ curl -I https://www.google.co.jp/ ``` こちらのコマンドではステータスで200帰ってきております!
退会済みユーザー

退会済みユーザー

2019/08/14 00:56

原因を探るにあたって、質問文を正確に書くことはできますか? ・一行目の query = URI.decode_www_form(URI(title.attr("href")).query) は不要でしょう(か、使っているところを書いてください) ・USER_AGENTが定義されているところがありません ・Mechanizeが使われているのでrequireしているはずです ・submit_keywordを実行しているところがありません ・submit_keywordは可能ならばインデントを整えてください
yuzujoe

2019/08/14 04:29

・一行目の query = URI.decode_www_form(URI(title.attr("href")).query) は不要でしょう(か、使っているところを書いてください) →不要なので削除しました ・Mechanizeが使われているのでrequireしているはずです →こちらrequireしております ・submit_keywordを実行しているところがありません →該当のコードを追加いたしましたのでご確認ください ・submit_keywordは可能ならばインデントを整えてください こちらteratailさんの方にペーストするとズレるようでcode上では整っておりますのでご容赦ください
yuzujoe

2019/08/14 04:41

失礼致しました。 他のものでのエラーを掲載していました。 再度掲載し直しますのでお待ちくださいませ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問