English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طريقة تنفيذ التحقق المتوازي للعناوين IP للوكلاء في Python3

يشرح هذا المثال كيفية تنفيذ تحقق من صحة عناوين وكيل البريد الإلكتروني باستخدام بايثون 3. يشارك معكم هذا الموضوع للاستفادة منه، ويبدأ كما يلي:

#encoding=utf-8
#author: walker
#date: 2016-04-14
#summary: استخدام السوريات/الأسطر لتحقق من صحة وحدات التخزين المتوازية
import os, sys, time
import requests
from concurrent import futures
cur_dir_fullpath = os.path.dirname(os.path.abspath(__file__))
Headers = {
      'Accept': '*/*',
      'User-Agent': 'Mozilla/4.0 (مستعرض متوافق; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)',
    }
# Check the validity of a single proxy
# If valid, return the proxy; otherwise, return an empty string
def Check(desturl, proxy, feature):
  proxies = {'http': 'http://' + proxy}
  r = None # declaration
  exMsg = None
  try:
    r = requests.get(url=desturl, headers=Headers, proxies=proxies, timeout=3)
  except:
    exMsg = '* ' + traceback.format_exc()
    #print(exMsg)
  finally:
    if 'r' in locals() and r:
      r.close()
  if exMsg:
    return ''
  if r.status_code != 200:
    return ''
  if r.text.find(feature) < 0:
    return ''
  return proxy
# Input proxy list (set/list), return list of valid proxies
def GetValidProxyPool(rawProxyPool, desturl, feature):
  validProxyList = list()  # list of valid proxies
  pool = futures.ThreadPoolExecutor(8)
  futureList = list()
  for proxy in rawProxyPool:
    futureList.append(pool.submit(Check, desturl, proxy, feature))
  print('\n submit done, waiting for responses\n')
  for future in futures.as_completed(futureList):
    proxy = future.result()
    print('proxy:' + proxy)
    if proxy: # valid proxy
      validProxyList.append(proxy)
  print('size of validProxyList:' + str(len(validProxyList)))
  return validProxyList
#الحصول على مجموعة الوكلاء الأصلية
def GetRawProxyPool():
  rawProxyPool = set()
  #الحصول على مجموعة الوكلاء الأصلية بطريقة ما...
  return rawProxyPool
if __name__ == "__main__":
  rawProxyPool = GetRawProxyPool()
  desturl = 'http://...'    #عنوان الهدف الذي يجب الوصول إليه عبر وكيل
  feature = 'xxx'    #رمز ميزة صفحة الهدف
  validProxyPool = GetValidProxyPool(rawProxyPool, desturl, feature)

بالنسبة للمزيد من المعلومات المتعلقة بلغة Python، يمكن للقراء المهتمين الاستفسار عن المقالات الخاصة بالموقع: 'تعليمات Python من البداية إلى المتقدم'، 'تحليل تقنيات التشغيل URL لغة Python'، 'تحليل تقنيات التشغيل صورة لغة Python'، 'تعليمات بنية البيانات والخوارزميات لغة Python'، 'تحليل تقنيات التشغيل Socket لغة Python'، 'تحليل تقنيات التشغيل الدالة لغة Python'، 'تحليل تقنيات التشغيل نصوص لغة Python'، وأيضًا 'تحليل تقنيات التشغيل ملفات والمجلدات لغة Python'.

آمل أن يساعدك هذا المقال في تصميم برامجك باللغة Python.

إعلان: محتوى هذا المقال تم جمعه من الإنترنت، ملكية المحتوى مملوكة للمساهمين، تم إدراج المحتوى بواسطة المستخدمين عبر الإنترنت بشكل تلقائي، لا يمتلك هذا الموقع حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية متعلقة بذلك. إذا اكتشفتم محتوى يشتبه في أنه مخالف لحقوق النسخ، يرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' ب '@') للإبلاغ، وتقديم الدليل، إذا تم التحقق من ذلك، سيتم حذف المحتوى المزعوم فورًا.

أنت قد تعجبك