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.リクエストヘッダ情報(要求ヘッダ)
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)