Pythonの爬虫類ゼロベースの戦闘

コンテンツ

1.爬虫類とは何ですか?

python 2.なぜウェブクローラ

3.python環境設定

4.私は、Pythonの爬虫類のどのような事前知識を知っておく必要があります

正規表現について5。

Nで処理された前記抽出Webコンテンツおよび発現

7.xPathとBeautifulSoupイントロ

 

 

はじめに1.爬虫類

簡単に言えば、爬虫類プローブは機械で、その基本的な動作は、散歩様々なサイトへの人間の行動をシミュレートする小さなボタン、データを検索し、情報や背中のバックを参照してくださいすることです。疲れを知らないの昆虫が建物の中に周りのクロールのように。

あなたは簡単に想像できる:すべての爬虫類はあなたです「アバター」。猿の王様のように猿の束を吹く、毛の一握りを引っ張りました。

あなたは、毎日のBaiduのを使用し、実際には、この技術の爬虫類の使用:各サイトへのリリース日は無数の爬虫類、その情報を再び戻って来て、あなたが取得するために、その後の良好な化粧チームの行が待っています。
数多くの約束を広げると同等グラブ票へのソフトウェアは、各アバターはあなたが常にリフレッシュさ以上の12306枚のチケットのウェブサイトを訓練するのに役立ちます。チケットたら、すぐに撃墜され、その後、あなたは叫ぶ:暴君の支払いを、是非。
- ユーザーからはほとんどの歴史を知っています
  インターネットはネット、一緒に中間接続リンクの様々なようなもので、少し爬虫類ではなく、このようなグラブ票、検索エンジンのいくつかのソフトウェアなどの重いタスクを実行するために多くの人々のために、この陽気ラインに乗ることができました。
 
 
 
python 2.なぜウェブクローラ
  親しみやすい言語としてPythonには、ページの文書、シミュレートブラウザの動作、クロールデータ処理をフェッチする豊富なAPIを提供します。私たちのデモの裏には、数行であってもよく、ウェブコンテンツコアコードをクロール、はじめにPythonの爬虫類を展示しますが、それは強力な達成することができます。
 
 
3.python環境設定
  初心者のために、それは最も使い慣れたWindows環境です。私はアナコンダは、外部ライブラリの管理を容易にPythonコードで書かれアナコンダ+のpycharmを、使用している、とpycharmは非常に人気で強力なIDEです。詳細な設定手順、ブログを参照:      アナコンダとpycharmのインストールと設定を  。
 
4.私は、Pythonの爬虫類のどのような事前知識を知っておく必要があります
  少なくともなど、不明な場合は、あなたがパイソンの浙江ウェン甲斐ムークラスに参加、または文書に自分自身を紹介することができ、パイソンの少し基本的な知識があること        のpython入門チュートリアル そのような種々の標識の意味の代表として、HTMLのいくつかの基本的な知識を理解するために同じ時間が必要で:

< - ... - !>:定義のコメント
<!DOCTYPE>:定義するドキュメントタイプ
<HTML>:総タグのHTMLドキュメント
の<head>:ヘッド定義
<body>を:定義したWebコンテンツを
<SCRIPT>:カスタムスクリプト
の<div>:部門、パーティション、容器ラベル定義
の段落、段落に定義:<P>
<A>を:ハイパーリンク定義
の<span>:テキストコンテナの定義
ラップ:<BR>
の<form>:カスタムフォーム
<テーブル>:定義テーブルを
<TH>:定義されたヘッダ
<TR>:テーブルの行
<TD>:テーブルの列
<B>:定義太字
<IMG>:カスタム画像

  これらのhtmlタグ上記の身近には、当社の正規表現の処理と同様に、XPathとBeautifulSoup学習を促進します。
 
正規表現について5。
 
  Pythonの正規表現より多くの知識、私たちはこのように、いくつかの基本的なを知っておく必要があります。
 
Nで処理された前記抽出Webコンテンツおよび発現
 
  
インポートインポートurllib.request
 インポートchardet 

レスポンス = urllib.request.urlopen(http://news.hit.edu.cn/ あなたはのURLクロールするページ用)#入力パラメータ

HTML = response.read()#をHTML読み取る可変
chardet1 = chardet.detect(HTML)#取得エンコーディング
HTML = html.decode(chardet1 [ ' エンコーディング'取得した符号化に従って処理])#

   ここでは、操作のpython爬虫類、ローカル操作にWebコンテンツをクロール達成される上記のコードの数行を実証するための一例として、大学の公式ニュースサイトを持っています。

  次は、正規表現の処理にクロールの内容で、我々はページのソースコードを観察するために取得したいものを手に入れます:

  

私たちは以下のことを達成するために学んだ知識の前に、正規表現にマッチしている外部へのリンクのために願っています:

mypatten = " <LIクラス= \"リンク項目\ "> <a href=\"(.*)\">の<span>(。*)</ span>をする</a>ます。</ li> " 
マイリスト = re.findall(mypatten、HTML)
 のための I におけるマイリスト:
     プリント" 外部链接地址:%S网站名:%S "%(I [0]、I [1]))

その効果は以下のとおりです。

 

7.xPathとBeautifulSoupイントロ

  得られたウェブ文書を処理する正規表現に加えて、我々はまた、独自のWebアーキテクチャを考慮することができます。

XPathの、XMLパス言語、つまりXMLパス言語の完全な名前は、それがXMLドキュメントの言語での発見情報です。XPathのは、元々XML文書を検索するように設計されたが、それはまた、HTML文書を検索するために適用されました。

  ノード名このノードのすべての子ノードを選択する
  /現在のノードが選択された直接の子ノードが
  //現在のノードからの子孫ノードを選択します
  。現在のノードを選択します
  。..現在のノードの親ノードを選択し
  @選択属性

  ここで、一般的にXPathのマッチングルールのリスト、例えば/代表はすべての子孫が現在のノード、現在のノードを選択する代表ノード//選択を表す直系子ノードを選択..代表属性@親ノードの選択を添加します属性に一致する特定のノードを選択し、定義します。

lxmlのインポートetree
 インポートurllib.request
 インポートchardet 
応答 = urllib.request.urlopen(" https://www.dahe.cn " 

HTML = response.read()
chardet1 = chardet.detect(HTML)
HTML = html.decode (chardet1 [ ' コード' ])
etreehtml = etree.HTML(HTML)
マイリスト = etreehtml.xpath(" / HTML /本体/ DIV / DIV / DIV / DIV / DIV / UL / DIV /李"

BeautifulSoup4の爬虫類は、スキルを学びます。BeautifulSoup主な機能は美しいスープを自動的に入力された文書をコードUnicodeに変換し、文書を出力UTF-8でエンコードに変換され、ウェブからデータをフェッチすることです。BeautifulSoupは、HTMLパーサーのPythonの標準ライブラリはまた、我々は、デフォルトのPython Pythonはパーサ、パーサlxmlのより強力な、より速く、推奨される解決lxmlのを使用して、それをインストールしていない場合は、サードパーティのパーサをサポートしてサポートしていますデバイス。

BS4 インポートBeautifulSoupの
ファイル =オープン(' ./aa.html '' RB ' 
HTML = File.read()
BS = BeautifulSoup(HTML、" html.parser "#のインデント
印刷(bs.prettify() )#の形式のHTML構造の
印刷(bs.title) タイトルタグの名前を取得
印刷(bs.title.name) 、テキストのタイトルタグ得る
印刷(bs.title.string) すべてのコンテンツ取得headタグの
印刷を( bs.head) 第1のタグのdivのすべての内容取得
プリント(bs.div) は、最初のdiv IDタグ値を取得する
印刷(bs.div [ ID  ]) にラベルのすべての内容取得
の印刷(bs.a) 内のすべてのタグのすべての内容取得
を印刷する(bs.find_all(" ")) 取得= ID "U1" を印刷(bs.find(ID = " U1 ")) 、すべての取得ラベル、およびラベル印刷トラバースhrefの値のための項目 bs.find_all(): 
     印刷(item.get(HREF 

)) 取得ラベルのすべて、およびトラバースラベルテキスト値印刷する
ための項目 bs.find_all(): 
     印刷(item.get_text())

 

< - ... - !>:定義のコメント
<!DOCTYPE>:定義するドキュメントタイプ
<HTML>:総タグのHTMLドキュメント
の<head>:ヘッド定義
<body>を:定義したWebコンテンツを
<SCRIPT>:カスタムスクリプト
の<div>:部門、パーティション、容器ラベル定義
の段落、段落に定義:<P>
<A>を:ハイパーリンク定義
の<span>:テキストコンテナの定義
ラップ:<BR>
の<form>:カスタムフォーム
<テーブル>:定義テーブルを
<TH>:定義されたヘッダ
<TR>:テーブルの行
<TD>:テーブルの列
<B>:定義太字
<IMG>:カスタム画像

おすすめ

転載: www.cnblogs.com/upuphe/p/12556357.html