1. Web クローラーとは
簡単に言うと、インターネットからデータを自動的にダウンロード、解析、整理するプログラムを構築することです。
Web を閲覧するときと同じように、興味のあるコンテンツをコピーしてノートブックに貼り付け、次回の閲覧や閲覧を容易にします。Web クローラーは、これらのコンテンツを自動的に完成させるのに役立ちます。
もちろん、コピー&ペーストできない Web サイトに遭遇した場合は、Web クローラーがさらに威力を発揮します
Web クローラーが必要な理由
データ分析を行う必要がある場合- そして多くの場合、これらのデータは Web ページに保存されており、手動でのダウンロードには時間がかかりすぎます。現時点では、これらのデータを自動的にクロールできるようにする Web クローラーが必要です (もちろん、Web 上で利用できないデータはフィルターで除外されます)使用するもの)
Web クローラーのアプリケーション
ネットワーク データへのアクセスと収集には非常に幅広い用途があり、その多くはデータ サイエンスの分野に属します。次の例を見てください:
淘宝網の販売者は、顧客の心をさらに捉え、顧客のショッピング心理を分析するために、大量のレビューから有用な肯定的情報と否定的情報を見つける必要があります。 Twitter と Weibo うつ病や自殺願望を特定するための予測モデルを構築するためのデータセットを構築するための情報 - より多くの困っている人が助けを得ることができるように - もちろん、プライバシー関連の問題も考慮する必要があります - しかし、クールであるだけではありませんそれ?
人工知能エンジニアとして、彼らは Ins からボランティアの好みの写真をクロールして、与えられた画像がボランティアに気に入られるかどうかを予測する深層学習モデルをトレーニングしました。;携帯電話メーカーは、これらのモデルを写真アプリをプッシュして送信します。 ECプラットフォームのデータサイエンティストは、ユーザーが閲覧した商品の情報をクロールし、分析・予測を行うことで、ユーザーが最も知りたい、最も買いたい商品をプッシュします
はい! Web クローラーは、高解像度の壁紙や写真の毎日のバッチ クローリングから、人工知能、深層学習、ビジネス戦略策定のためのデータ ソースに至るまで、幅広く使用されています。
この時代はデータの時代、データは「新しい石油」です
2. ネットワーク伝送プロトコル HTTP
はい、Web クローラーに関して言えば、避けては通れないのは、もちろん、この HTTP については、ネットワーク エンジニアのようにプロトコル定義をすべて詳しく理解する必要はありませんが、入門としてはある程度の理解は必要です。 ## 国際標準化機構 ISO はオープン通信システム相互接続参照モデル OSI を維持しており、このモデルはコンピュータ通信構造を 7 つの層に分割します
- 物理層: イーサネット プロトコル、USB プロトコルを含む、Bluetooth プロトコルなど
- #データリンク層: イーサネットプロトコルを含む
##ネットワーク層: IP プロトコルを含む
- ##トランスポート層: TCP、UDP プロトコルを含む
- セッション層: セッションの開始/終了および管理のためのプロトコルが含まれます # プレゼンテーション層: データの書式設定と変換を保護するためのプロトコルが含まれています
- アプリケーション層: HTTP および DNS ネットワーク サービス プロトコルが含まれています
- ##次に、以下を見てみましょう。 HTTP リクエストとレスポンスがどのようなものであるか (後でリクエスト ヘッダーの定義に関係するため) 一般的なリクエスト メッセージは次の内容で構成されます。
- #リクエスト ライン
- 空行
##オプションのメッセージ本文
- ##特定のリクエスト メッセージ:
GET https://www.baidu.com/?tn=80035161_1_dg HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-GB;q=0.5,en;q=0.3 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362 Accept-Encoding: gzip, deflate, br Host: www.baidu.com Connection: Keep-Alive
これはアクセスです。もちろん、Python のリクエスト パッケージがクロールの完了に役立つため、Baidu のリクエストの多くの詳細を知る必要はありません。 - もちろん、リクエストに対して Web ページから返された情報も表示できます:
HTTP/1.1 200 OK //这边的状态码为200表示我们的请求成功 Bdpagetype: 2 Cache-Control: private Connection: keep-alive Content-Encoding: gzip Content-Type: text/html;charset=utf-8 Date: Sun, 09 Aug 2020 02:57:00 GMT Expires: Sun, 09 Aug 2020 02:56:59 GMT X-Ua-Compatible: IE=Edge,chrome=1 Transfer-Encoding: chunked
3. リクエスト ライブラリ (理論的な知識が苦手な学生はここに直接来てください)
#1. リクエスト ライブラリのインストール
ここで、インストールするリクエストの .whl ファイルを直接見つけることも、pip を使用して直接インストールすることもできます (もちろん、pycharm をお持ちの場合は、内部の環境が読み込みとダウンロードを行っているため、直接インストールできます)
2. 実際の戦闘
いよいよ Web ページのクロールを正式に開始します
コードは次のとおりです:
import requests target = 'https://www.baidu.com/' get_url = requests.get(url=target) print(get_url.status_code) print(get_url.text)
出力結果
200 //返回状态码200表示请求成功 <!DOCTYPE html>//这里删除了很多内容,实际上输出的网页信息比这要多得多 <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html; charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge> <meta content=always name=referrer> <link rel=stylesheet type=text/css src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
上記の 5 行のコードは多くのことを行っています。すでに Web ページのすべての HTML コンテンツをクロールできます。
コードの 1 行目: リクエスト ライブラリをロードします。コードの 2 行目: Web サイト番号を入力します。 3 行のコード: リクエストを使用したリクエストの一般的な形式は次のとおりです:
对象 = requests.get(url=你想要爬取的网站地址)
コードの 4 行目: リクエストのステータス コードを返します。コードの 5 行目: 出力対応するコンテンツ本文
もちろん、その他のコンテンツを印刷することもできます
import requests target = 'https://www.baidu.com/' get_url = requests.get(url=target) # print(get_url.status_code) # print(get_url.text) print(get_url.reason)//返回状态 print(get_url.headers) //返回HTTP响应中包含的服务器头的内容(和上面展示的内容差不多) print(get_url.request) print(get_url.request.headers)//返回请求中头的内容
OK {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Sun, 09 Aug 2020 04:14:22 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'} <PreparedRequest [GET]> {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}
以上がPython Web クローラーリクエストライブラリの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

PythonとCは、メモリ管理と制御に大きな違いがあります。 1。Pythonは、参照カウントとガベージコレクションに基づいて自動メモリ管理を使用し、プログラマーの作業を簡素化します。 2.Cには、メモリの手動管理が必要であり、より多くの制御を提供しますが、複雑さとエラーのリスクが増加します。どの言語を選択するかは、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

PythonまたはCを選択するかどうかは、プロジェクトの要件に依存するかどうかは次のとおりです。1)Pythonは、簡潔な構文とリッチライブラリのため、迅速な発展、データサイエンス、スクリプトに適しています。 2)Cは、コンピレーションと手動メモリ管理のため、システムプログラミングやゲーム開発など、高性能および基礎となる制御を必要とするシナリオに適しています。

Pythonは、データサイエンスと機械学習で広く使用されており、主にそのシンプルさと強力なライブラリエコシステムに依存しています。 1)Pandasはデータ処理と分析に使用され、2)Numpyが効率的な数値計算を提供し、3)SCIKIT-LEARNは機械学習モデルの構築と最適化に使用されます。これらのライブラリは、Pythonをデータサイエンスと機械学習に理想的なツールにします。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
