効果:関連プロキシ一連のデータベース操作のために
目的:データベース検索操作の変更への追加や削除を実現します
ステップ:
初期化においては、データベース接続は、動作のセットを取得デルのデータベース接続処理を閉じるために、確立されています
2.基本的なCRUD機能を提供します
1)挿入を達成するために
2)を達成するために機能を変更
3)を達成するために、エージェント機能を削除
4)検索機能のIPプロキシ
3.使用するAPIプロキシ機能モジュールを提供します
1)クエリ、条件に応じてクエリを実行するには、上記のIP機関の品質を確保するために、スピードを昇順で、クエリの数、多い順に第1のスコアを指定することができます。
2)サイトにアクセスするためのプロトコルおよびドメイン名の種類に応じて、プロキシIPリストへのアクセスを実現
3)ランダムがフルにアクセスするためにプロキシIPプロトコルタイプとドメイン名を取得します実装
4)diable_domainで指定されたIPのリストに追加する指定されたドメイン名を達成するために
コード:
pymongo インポートMongoClient から設定をインポートMONGO_URL から utils.log インポートロガー からドメインをインポートプロキシ クラス:MongoPool(オブジェクト) DEF __init__ (自己): #データベースへの接続を確立 self.client = MongoClient(MONGO_URL) #に操作のセットを取得 自己。 = self.clientプロキシ[ ' proxies_pool ' ] [ ' プロキシ' ] DEF __del__ (自己): #閉じる接続 self.client.close() DEFのinsert_one(セルフ、プロキシ): #_id:主キーデータのMongoDBとして使用IP代理 COUNT = self.proxies.count_documents({ ' _id ' :proxy.ip}) IF == COUNT 0: DIC =プロキシ__dict__ DIC [ ' _id ' ] = proxy.id self.proxies.insert_one() logger.info(" 新しいエージェントインサート:{} " .format(プロキシ)) 他: ロガー。警告(「既存のプロキシ{} 」.format(プロキシ)) DEFの:update_one(セルフ、プロキシ) #は編集達成 self.proxies.update_oneを({ ' _id ':proxy.ip}、{ ' $ SET ':プロキシ__dict__ }) DEFのdelete_one(セルフ、プロキシ): #は削除機能の実現 self.proxies.delete_one({ ' _id ' :)proxy.ip} logger.info(" :{}の削除プロキシIP " ).format(プロキシ) DEF find_all(セルフ): #の検索プロキシIP カーソル= self.proxies.find() のための項目カーソル: #このキー_id削除 item.pop(「_id 」) プロキシ =プロキシ(** 項目) 得プロキシを