DAY-01

爬虫類のまず、基本的な原則

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

クロールデータ

2.インターネットは何ですか?

ネットワーク機器の束で、台湾と台湾のコンピュータにインターネットに一緒に

3.インターネットの設立の目的

転送とデータの共有

4.データとは何ですか?

たとえば、次のように商品情報の電子ビジネスプラットフォームホームチェーン、情報の入手の容易株式投資情報(雪だるまネットワーク、東フォーチュン)12306のチケット情報

5.インターネットとは何ですか?

普通のユーザー:ブラウザを開き

--->アドレスに移動します

--->ターゲットホストにリクエストを送信

--->リターン応答データ

--->ブラウザに描画データを

クローラ:アナログブラウザ

--->ターゲットホストにリクエストを送信

--->リターン応答データ

--->解析し、貴重なデータを抽出

--->(ローカルに書き込まれたファイルは、データベースに永続化)データを保存します

6.爬虫類の全体のプロセス

1. 送信要求(ライブラリ:要求/セレン)

2. 応答データをフェッチ

3. 解析データ(解析ライブラリ:BeautifulSoup4)

4. 保存したデータ(店舗:/ MongoDBのファイル保存)

二、リクエスト要求ライブラリー

1.インストールと使用

PIP3 インストール要求を

2.プロセス分析要求(アナログブラウザ)

1.请求URL:www.baidu.com

2.リクエストメソッド:GET / POSTに......

3.レスポンスステータスコードは:開始2 --->要求が受信された理解、受け入れられています

3つの開口--->不完全な情報

4 --->リクエスト構文エラーまたは不正に始まり、アクセスがリソースなしで禁止されています

最初の5 --->サーバーエラー

3.リクエストヘッダ情報(要求ヘッダ)

*のUser-Agent:ユーザーエージェント

 

 教室例:

1つの インポート要求
 2  クローラー部作
3  1は、要求を送信
4。 DEF get_page(URL):
 5      応答= requests.get(URL)
 。6      、リターン応答
 。7  
。8  2は、データを解析された
9。 インポート10  DEFのparse_index(HTML)を:
 11      #が全て一致のfindAll 
12である     。#re.findall( '正規マッチングルール'、 '一致するテキスト'、 'マッチングモード')
13は、     #1 re.S:一致するすべてのテキストを検索
14      detail_urls re.findall =(' <DIVをクラス= "アイテム"> <クラス= "imglink"のhref = "(。*?)"'HTML、re.S)
 15      リターンdetail_urls
 16の #の解決の詳細ページ
17  DEFのparse_detail(HTML):
 18      movie_url = re.findall(' <。ソースSRC =を"?(*)"> " 、HTML、re.S )
 。19      IF movie_url:
 20である         リターン movie_url [0]  戻りのみビデオ詳細なURL 
21は 
22である 3記憶されたデータ
23が インポートUUID
 24  #1 (uuid.uuid4)のみタイムスタンプに応じて文字列を生成する
25  DEFを(save_videoコンテンツ):
 26が      開くと(F ' 。uuid.uuid4 {()} MP4' ' WB ' F AS):
 27          f.write(コンテンツ)
 28          印刷' 動画ダウンロード' 29  
30  テスト
31は、 IF  __name__ == ' __main__ " 32      のためのラインの中でできる範囲(6 ):
 33がある          URLがF = ' http://www.xiaohuar.com/list-3-{line}.html ' 
34は、 
35          #は要求送信
36          レスポンス= get_page(URL)
 37          プリント(レスポンス)
38が 
39          #レスポンスステータスコードを返し
40          プリント(response.status_code)
41は 
42である         #1 #は、テキストに応答を返し
43は         #1 印刷(response.text)
44が 
45            解析ホームページ
46で          detail_urls = parse_index(response.text)
 47  
48          ページ情報URLを介してループ
49          のため detail_url detail_urls:
 50              プリント(detail_url)
 51は 
52である             要求送信前に、各ページに
53である              detail_response = get_page(detail_url)
 54であるの             #の印刷(response.text)
55  
56である             #1 ビデオURLの解決詳細ページ
57れる              movie_url = parse_detail(detail_response.text)
 58  
59              #はビデオ印刷URLの有無を判断する
60              IF movie_url:
 61である                 プリント(movie_url)
 62は 
63である                 。#動画のURLに送信しますバイナリのビデオストリーム要求
64                  movie_responseを= get_page(movie_url)
 65  
66                  ローカル関数にバイナリビデオストリームはsave_video節約
67                  save_video(movie_response.content)

 

おすすめ

転載: www.cnblogs.com/cny0331/p/11114059.html