pythonネットワーク爬虫類学習ノート(1)

6095 ワード

ネット爬虫類学習ノート(1)
1資料
『Pythonネット爬虫類入門から実践まで』唐松、陳志equan.主にwindowsプラットフォームの下のpython 3向けです.
2ノート
2-1爬虫類の概要
  • (約2016年)ネット爬虫類の個人使用と科学研究の範疇には基本的に問題はないが、商業利益の範疇は相手次第だ.
  • はウェブサイトのRobotsプロトコル(爬虫プロトコル)を通じて、宝を洗う[link]https://www.taobao.com/robots.txt.ここで、User-Agent:許可url、Allow:許可されたコンテンツ、Disallow:許可されていません.Disallow:/キャプチャ許可以外のコンテンツは禁止されています.Disallow:/abc表示アクセス禁止収録abc.php、abc.htmlとabcフォルダの下にあるすべてのファイル.Disallow:/abc/は、abcフォルダの下にあるすべてのファイルへのアクセスのみを禁止するが、abcを制限しないことを示す.php、abc.htmlファイル.
  • は、Robotsプロトコルに従い、ネットワーク爬虫プログラムの速度を制約します.データを使用するときは、Webサイトの知的財産権を守らなければなりません.
  • 爬虫プロセス:1)ウェブサイトの取得,2)ウェブページの解析(データの抽出),3)データの格納.
  • 4-1)Webサイトの取得-基礎技術:request、urllib、selenium(アナログブラウザ);ステップアップ技術:マルチプロセスマルチスレッドキャプチャ、ログインキャプチャ、IP閉鎖突破、サーバキャプチャ.
  • 4-2)解析ページ-基礎技術:re正規表現、BeautiSoup、lxml
  • ;進級技術:中国語の文字化けしを解決する.
  • 4-3)データを格納する——基礎技術:txtファイル、csvファイル;ステップアップテクノロジー:MySQl、MongoDB.

  • 2-2インストール
  • Anacondaをインストールし、python符号化環境をワンタッチでインストールします.pip(window進cmd,Mac進terminal)でbs 4,request,lxmlなどのサードパーティライブラリをインストールします.
  •  pip install bs4
     pip install request
     pip install lxml
    
  • コンパイラJupyter(他にもNotepad++、SublimeTexture、Spyderがあります)、cmd下入力jupyter notebookブラウザ起動Jupyterインタフェース*(自分で作った部分)Spyderインストールpip install --pre -U spyder・・・Anacondaがあるようですこれは使わないほうがいいです、具体的には[link]https://github.com/spyder-ide/spyder/releases

  • 2-3 Pythonベース(1)
  • 厳密なコードインデントは、Tabキーまたは4つのスペースでインデントされます.
  • "#"の後に注釈
  • があります.
  • *pythonはキーワードを制限せず、方法や変数名も区別せず、書くときは自分で異なる名前をつけることに注意しなければなりません.変数は、割り当てられた内容に基づいて自動的にタイプを決定します.
  • 出力文
  •  print(“  ”)
    
  • の4種類のデータ型:1)String文字列、2)Number数字、3)listリスト、4)Dictionaries辞書.
  • String文字列--「と」は文字列を配置するために使用でき、+を使用して接続できます.
  • string1 ='abc'
    str = "fe"
    print(string1+str)
    
  • Number数字--よく使われるのはint(整数)とfloat(浮動小数点数)の2種類です.変換する場合は、変数の前にintまたはfloatを追加します.注意Numberはstringに直接
  • を加算することはできません.
    thisSeven = 7
    float1 = 1.1
    chase = int(float1)
    print(thisSeven+chase)
    

    また,Numberには長整数と複素数がある.5.listリスト——リストには任意の種類のデータ型を含めることができます!また、[開始下付き:終了下付き]で他の逆と一般的な配列の違いはありません.*[]で値を割り当て、クエリも[]
    list1 = ['a', 2, "new", 1.9]
    print(list1[1:3])
    list1[3] = float(list1[1])
    print(list1)
    

    6.Dictionaries辞書-keyとvalue(キー値が合っている)を含む可変コンテナモデル.keyは一意でなければなりません.valueは任意の種類のデータ型を使用できます.*{}を使用して値を割り当てますが、[]クエリーを使用します.
    notebook = {"name": '1234', "age":7, "class":"first"}
    print(notebook["name"])
    print(notebook)
    #    notebook    
    for key1, value1 in notebook.items():
       print(key1, value1)