12_爬虫類の段階的総括
2773 ワード
簡単に述べる
このセクションでは、従来の
共通プラグインの説明
構想分析
1、目標分析目標がどのようなデータを提供できるか、自分がどのようなデータを必要とするかを明確にし、
問題のまとめ
質問1、
以上の問題は、呼び出された
問題2、
異なるデータを返すために、適切な解析方法を選択する必要があります.
問題三、返却データ解析異常
すべてのコンテンツフォーマットが完全に一致していると判断できないため、解析異常、例えば
問題四、データ量が多いため、重複したデータが消費されたかどうかを検査する
実際のキャプチャでは、重複操作の応答時間がデータ量の増加に伴って増加するかどうかを確認し、テーブルの設計時に適切なインデックスを確立することを推奨します.
問題5、プログラムのその他の原因が崩壊する
実際のキャプチャ中にプログラムが多数の原因でクラッシュする可能性があり、異常を記録し続け、異常処理を追加することを提案し、処理が終わった後、しばらく休んで、自動的に適切なプログラムセグメントを呼び出して引き続きキャプチャする.
その他
キャプチャには、シミュレーション
このセクションでは、従来の
Python
爬虫類の例で発生した問題について説明します.共通プラグインの説明
# Python 3.5
import requests #
from bs4 import BeautifulSoup #
import re #
import time, os # 、
import datetime #
import pymssql #MS SQL Server
import pymongo #MongoDB
import json #Json
import crypto #
import execjs # JavaScript
構想分析
1、目標分析目標がどのようなデータを提供できるか、自分がどのようなデータを必要とするかを明確にし、
Excel
を用いて目標データ構造2を構築し、データロード方式分析目標データがどのような形式でロードされるかを明らかにし、キャプチャ後の解析方式Json
またはBeautifulSoup
、再帰ページをめくる必要があるかどうかなどの3、コード実現request
モジュールを通じて、データのキャプチャを実現する.期間はcookies
、headers
、鍵シミュレーションなどの問題に関連する可能性があり、絶えず改善すればよい.適切なモジュール解析データを選択します.入庫ストレージの実装問題のまとめ
質問1、
crypto
使用、配置、プロンプトJson
未定義、識別子、文字列または数値が見つかりません以上の問題は、呼び出された
JavaScript
に実行環境互換性のない構文がある可能性があります.まず、実行環境バージョンを表示し、以前のバージョンと比較するとnode.js
を直接インストールすることをお勧めします.#
>>> execjs.get().name
'Node.js (V8)'
問題2、
requests
要求後の戻りタイプが異なる異なるデータを返すために、適切な解析方法を選択する必要があります.
#
r = requests.get(url)
r.content #
r.text #
r.json() #Json
#
r.status_code #
r.headers #
r.cookies.get_dict() #cookies
問題三、返却データ解析異常
すべてのコンテンツフォーマットが完全に一致していると判断できないため、解析異常、例えば
type
、len
、三元比較子を様々な方法でキャプチャする必要がある.# type
if type(dist_aqi) == dict: #
print(dist_aqi["error"])
else:
parse_html_aqi(dist_aqi)
#
aqi = city_air_quality["aqi"] if 'aqi' in city_air_quality else ''
問題四、データ量が多いため、重複したデータが消費されたかどうかを検査する
実際のキャプチャでは、重複操作の応答時間がデータ量の増加に伴って増加するかどうかを確認し、テーブルの設計時に適切なインデックスを確立することを推奨します.
問題5、プログラムのその他の原因が崩壊する
実際のキャプチャ中にプログラムが多数の原因でクラッシュする可能性があり、異常を記録し続け、異常処理を追加することを提案し、処理が終わった後、しばらく休んで、自動的に適切なプログラムセグメントを呼び出して引き続きキャプチャする.
その他
キャプチャには、シミュレーション
cookies
、headers
、timeout
などが含まれており、本質的に最も理想的なキャプチャプログラムは、真実の要求をシミュレートするために尽力することであり、これに対して、データ提供者/発行者としても対応する逆登り措置がある.世界平和のために、キャプチャ側として、できるだけ正規API
でデータを取得し、キャプチャをシミュレートしなければならない場合は、適切な要求間隔時間を設定してください.データ側としては、完全なAPI
を作成し、秘密データはインターネットに置かない.最後に、ルートディレクトリの下・robotsであるデータプロバイダが発行した爬虫類プロトコルを尊重する.txt・ファイル , :https://www.zhihu.com/robots.txt