INFO
こちらは
クローリングハック1章目のメモになります。(2章目もちょっと入ってる)
僕がしらないことだけメモしているの内容に偏りがあります。
WARNING
typoなど多めです。
curlコマンド
curl -iでヘッダーも取得
curl -Iでヘッダーのみ取得
(これがHEADリクエストだったんだ!
last-modifiedヘッダを確認してGETするときとかに便利。)
curl -Aでuser-agent情報の追加
curl -x post url -d username=suzuki
-dで送信する内容
jsonを送るときはシングルクォートで囲むと
改行して送信できるので便利。
-d '{
username: "suzuki"
}'
curl --verboseオプションで
すべてのリクエストとレスポンスが見れる。
> リクエストヘッダ
< レスポンスヘッダ
クローラー時に気をつけること
user-agentヘッダには、
クローラーの説明ページのURLと、取得する情報の用途を。
robots.txtを最初に確認しよう。
便利
クローラーのwebサイト:
import.io
クロムの拡張機能:
scraper
他
HTTPは基本的に「1つのリクエストに対して、1つのレスポンスを返す」プロトコル。
(この表現面白い、逆に複数レスポンスがあるもの知りたい。)
**HTTPリクエスト**
リクエストライン
リクエストヘッダ
空行
リクエストボディ
**HTTPレスポンス**
ステータスライン
レスポンスヘッダ
空行
レスポンスボディ
HTML5は、GET・POST以外のリクエストを送信することができないために、
Rails5などではname="_method" value="post"のような書き方が見られた。
(擬似的に表現)
JSONやXMLなどをリクエストボディとして
送信したい場合はX-HTTP-METHOD-OVERRIDEの設定。
XMKHttpリクエストならばput、deleteメソッドが使える。
Remote Procedure Callは、
処理の内容をボディに書く(REST以外に初めて見た!)
405はMethod Not allowed
501はnot implemented
rel="nofollow"と書けばクローラー対象外に
(SEO関連の話で聞いたことある)
www.example.com
サブドメイン.ドメイン.トップドメイン
(順番へん!w)
クローリングする前は
エンコードを確認する!
例えば、半角は
RFC3986だと%20
POSTメソッドのapplication/x-www-form-unlencsdedは+