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

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

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

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

1回答

2269閲覧

Rubyでのスクレイピングが途中で終了してしまうことについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

2クリップ

投稿2015/07/23 16:21

スクレイピングを試すために映画.comというページをスクレイピングして映画のタイトルなどをデータベースに保存するコードを書いてみたのですが、全490件くらいのうち250件くらいでスクレイピングが終わってしまうのですが、コードを見直しても間違えている点が見当たりません。
以下私が書いたコードになります

lang

1class Scraping 2 def self.movie_urls 3 agent = Mechanize.new 4 links = [] 5 current_page = agent.get("http://eiga.com/now/") 6 while true 7 elements = current_page.search('.m_unit h3 a') 8 elements.each do |ele| 9 links << ele[:href] 10 end 11 next_link = current_page.at('.next_page') 12 next_url = next_link.get_attribute('href') 13 unless next_url 14 break 15 end 16 current_page = agent.get('http://eiga.com' + next_url) 17 end 18 links.each do |link| 19 get_product('http://eiga.com' + link) 20 end 21 end 22 23 def self.get_product(link) 24 agent = Mechanize.new 25 page = agent.get(link) 26 title = page.at('.moveInfoBox h1').inner_text 27 image_url = page.at('.pictBox a img')[:src] if page.at('.pictBox img') 28 product = Product.where(:title => title, :image_url => image_url).first_or_initialize 29 product.save 30 end 31end

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

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

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

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

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

guest

回答1

0

DOSアタック防御でアクセスがブロックされているとかありませんか?

私がよくやるパターンは、ループの途中に適時1秒程度のウェイトを掛けるやり方です。
あまりウェイトを長くすると、完了までの時間がかかってしまいますので、どこにウェイトを入れるか、
どのぐらいの長さにするかは適当に判断する必要がありますが。

投稿2015/07/23 17:18

rifuch

総合スコア1901

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問