AWS EC2インスタンスからのスクレイピングがサイトからブロックされた話
AWS EC2インスタンスからのスクレイピングがサイトからブロックされた話:
ruby mechanizeを用いて
AWS EC2インスタンスから某ファッションサイトにスクレイピングを実行したところ、
のようなエラーで処理が止まってしまった。これはどうやら調べてみると
https://webbigdata.jp/what-is-bigdata/page-207
の記事[4]に書いてあるように、
他の方からの話を聞くと、
なのでもしスクレイピングが集中しているサイトだと、こういった制限がかけられているかもしれない。
疑問点が一つあり、EC2のパブリックIP(Elastic IP)を確認したところ
のようにかなりばらけていることが確認できた。
こんなにばらけているのなら、サイト側はどのようにして
ruby mechanizeを用いて
AWS EC2インスタンスから某ファッションサイトにスクレイピングを実行したところ、
9: from /usr/local/lib/ruby/2.5.0/net/http.rb:443:in `get_print' 8: from /usr/local/lib/ruby/2.5.0/net/http.rb:485:in `get_response' 7: from /usr/local/lib/ruby/2.5.0/net/http.rb:609:in `start' 6: from /usr/local/lib/ruby/2.5.0/net/http.rb:909:in `start' 5: from /usr/local/lib/ruby/2.5.0/net/http.rb:920:in `do_start' 4: from /usr/local/lib/ruby/2.5.0/net/http.rb:935:in `connect' 3: from /usr/local/lib/ruby/2.5.0/timeout.rb:103:in `timeout' 2: from /usr/local/lib/ruby/2.5.0/net/http.rb:937:in `block in connect' 1: from /usr/local/lib/ruby/2.5.0/net/http.rb:937:in `open' /usr/local/lib/ruby/2.5.0/net/http.rb:937:in `initialize': execution expired (Net::OpenTimeout)
https://webbigdata.jp/what-is-bigdata/page-207
の記事[4]に書いてあるように、
大規模なサイトは、クローラーによるデータ収集が出来ないようにIPアドレスによる制限をかけてくる場合があります。IP制限がかかっていると推測される。
他の方からの話を聞くと、
- heroku
- ec2
なのでもしスクレイピングが集中しているサイトだと、こういった制限がかけられているかもしれない。
疑問なところ
疑問点が一つあり、EC2のパブリックIP(Elastic IP)を確認したところ52.194.435.49 124.113.457.237 54.924.8425.4222
こんなにばらけているのなら、サイト側はどのようにして
ホスティングサービスからのアクセスなのか、他の一般ユーザーからのアクセスなのか
を識別しているのだろうか、わかる方がいらっしゃったら是非教えて欲しいです。
コメント
コメントを投稿