Python 書籍・読書

【Python クローリング&スクレイピング】を読んで

投稿日:2017年10月11日 更新日:

紀伊国屋で買いました。
カバー外してます。

クローリングフレームワーク

  • lxml
  • Beautiful Soup
  • Scrapy

クローリング→データ収集
スクレイピング→収集したものからデータ抽出すること

3章

スクレイピングライブラリ

  • lxml
  • BeautifulSoup 内部でlxml使用
  • pyquery 内部でlxml使用

必ず使う

  • XPath
  • CSS

chrome開発者ツールでコピーできる。

lxml

  • lxml.etree
  • lxml.html 壊れたHTMLも扱える
  • lxml.objectfy
  • lxml.sax SAX形式

libxml2,libxsltをインストールしておく必要あり。

pythonからMYSQLはmysqlclient。

MongoDBはNoSQLの一種。

NoSQL RDBより書き込み速い。スクレイピング結果保存に向く。大量ページの同時クローリング・スクレイピングはDB書き込みがボトルネックになることがあるから。

相対→絶対URLの変換は標準のurllib.parse#urljoinで。

4章

セッションを持つクローラー

  • セッション Requestsで対応
  • Referer

Javascriptを解釈するクローラー

  • Seleniumを経由して
  • PhantomJSを使用する

考慮すること

  • 著作権
  • robots.txtは紳士協定
  • クロール先の負荷 同時接続数、クロール間隔
  • 連絡先の明示

繰り返し実行を前提とした設計

  • 更新されたデータだけ取得する

プロキシサーバーでキャッシュ

  • Squid
  • Polipo

クロール先の更新を検知

  • if文で
  • バリデーション Voluptuous
  • smtplibモジュールを使ってメール通知

5章

自然言語処理技術

  • 基本は形態素解析
  • OSSはMeCab

【curl】ファイルのダウンロードやアップロードを行う

pandas

  • 内部でNumPy使用
  • データ分析のためのデータ構造とツールである
  • シリーズ‥1次元のラベルつき配列(行に相当)
  • データフレーム‥2次元の表

matplotlib

  • グラフ描画ライブラリ

クローラー使ってやりたいこと

  • 世界中の国毎の情報まとめサイト
  • 検索エンジン(評価軸を選べる)‥yougleと名付ける!

何でもできそう。

Linuxの勉強にもなる。

AWSの勉強にもなる。

  • MQM
  • EC2

補足・IDE

  • PyCharmが有名・人気。
  • Eclipseのプラグイン PyDevも。

-Python, 書籍・読書

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

python3のloggingを呼ぶための自作logger.pyは作るときにハマったこと

python3 の標準ログ出力モジュールであるlogging。 これを自作のlogger.pyにあるgetLoggerから返そうとした。 loggerの取得を共通関数化したかったからです。 すると、メ …

no image

Python mainメソッドと関数メソッドの定義

mainメソッド if __name__ == ‘__main__’: if __name__ == ‘__main__’: #処理の内容 test()   関数メソ …

no image

URLの構造

http://hoge.sample.com/category/diet?q=drink#ojousama スキーム scheme httpやhttpsのようにプロトコルを表す オーソリティ auth …

no image

【書籍】【HOW GOOGLE WORKS】Googleが今ほど巨大になれた理由

Googleが今ほど巨大になった理由は、「優れた検索エンジンを開発したから」だと思っていました。 もしくは、「優れたエンジニアを沢山雇っているから」さらに成長が加速しているのだと思っていました。 どう …

no image

Python3のお勉強

環境構築・Pythonのインストール PythonでHello World! 引数を与えてPythonスクリプトを実行する Pythonの文法 付録 Pythonコマンド 1.環境構築・Pythonの …