AWS EC2インスタンスからのスクレイピングがサイトからブロックされた話

AWS EC2インスタンスからのスクレイピングがサイトからブロックされた話:

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 
のようにかなりばらけていることが確認できた。

こんなにばらけているのなら、サイト側はどのようにして
ホスティングサービスからのアクセスなのか、他の一般ユーザーからのアクセスなのかを識別しているのだろうか、わかる方がいらっしゃったら是非教えて欲しいです。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)