質問: curl_exec($ch); //ここでもうエラーの:bool(false)が表示されます。 var_dump($html); の段階でのエラーは発生せず、サイトの情報が表示されました。 もしかしたら「https:」は関係なく 「https://www.pixiv.net/」側で禁止しているのかとも思ったのですが 下記のサイトにてスクレイピングが成功しているようなのです。 また、私のローカル開発環境でも成功しているので、 何か別に問題があるのかもと思いネットで色々調べてみた結果、 SSLVersionがOpenSSL ではないとエラーが発生するという風な記事を見つけ、 SSL VersionをOpenSSL/1.0.1eに設定してみたのですがエラーが治りませんでした。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/f6aa765d4eb6185a4bb1f9e36b024b3d.jpeg) また、iptablesの設定はこのようになっています。 ``` Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 4 ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED SERVICES tcp -- anywhere anywhere state NEW ACCEPT udp -- anywhere anywhere udp spt:domain ACCEPT udp -- anywhere anywhere udp spt:ntp dpt:ntp Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain SERVICES (1 references) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:設定しているport番号 ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:https ``` 会員登録が必要なページでもなく 他のhttps://サイトだと問題なく情報が表示され、 ローカル開発環境でも問題なく情報が表示されておりまして さくらVPSのサーバーのみでエラーが発生しているという状況です。 色々とネットで調べてみましたが、原因が解決できず困っています。 解決する方法をご存知の方や、何か気になる点がありましたら お力をお貸し頂けると嬉しいです。 どうかお願いします。 参考にしたURL [PHP]CurlでのSSL接続をOpenSSL方式に変更する さくらVPSのサーバーの情報です。 centos6.8 php5.6
回答: pixiv側でIPレベルでブロックしているのではと思います。 私が持っている、さくらVPSのサーバー上からwgetコマンドでpixivのトップページにアクセスしてみましたが、かなり前に借りたサーバーではアクセスできませんでした。(ちなみに最近借りたサーバーではアクセスできた) 過去にpixivにクロールなどは行ったことはないので、ブロックされるいわれはありません。 おそらくさくらのIPで範囲指定でブロックされているのではないでしょうか? サクラに限らず、VPSで不正アクセスを試みる輩が多いので、範囲でブロックされることは結構あるかと思われます。 たしか、2週間無料だったとおもうので、試しにサーバーを借りなおしてみる(IPを変える)というのも方法かもしれません。