0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[クローリングハック]メモ1

Posted at

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は+

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?