ما يصل إلى تاريخ مزيف وكيل مستخدم بسيط مع قاعدة بيانات العالم الحقيقي.
desktop
و/ tablet
و/أو UAs mobile
)useragent
و percent
و type
و device_brand
و browser
browser_version
و os
و os_version
platform
pip install fake-useragent
أو إذا كان لديك عدة إصدارات Python/pip مثبتة، فاستخدم pip3
:
pip3 install fake-useragent
أمثلة الاستخدام البسيطة أدناه، راجع أيضًا الفصول التالية في هذا الملف التمهيدي لمزيد من الاستخدامات المتقدمة:
from fake_useragent import UserAgent
ua = UserAgent ()
# Get a random browser user-agent string
print ( ua . random )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
# Or get user-agent string from a specific browser
print ( ua . chrome )
# Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
print ( ua . google )
# Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/343.0.695551749 Mobile/15E148 Safari/604.1
print ( ua [ 'Chrome' ])
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
print ( ua . firefox )
# Mozilla/5.0 (Android 14; Mobile; rv:133.0) Gecko/133.0 Firefox/133.0
print ( ua . ff )
# Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
print ( ua . safari )
# Mozilla/5.0 (iPhone; CPU iPhone OS 17_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1 Ddg/17.6
print ( ua . opera )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 OPR/114.0.0.0
print ( ua . edge )
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0
الميزات الإضافية التي يقدمها Fake-useragent الآن منذ الإصدار 1.2.0.
إذا كنت تريد تحديد قائمة المتصفحات الخاصة بك، فيمكنك القيام بذلك عبر وسيطة browsers
(الافتراضي هو: ["Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"]
.
سيعيد هذا المثال فقط وكلاء المستخدم العشوائيين من Edge وChrome:
from fake_useragent import UserAgent
ua = UserAgent ( browsers = [ 'Edge' , 'Chrome' ])
ua . random
ملاحظة: يعرف وكيل المستخدم المزيف عن المتصفحات: Chrome وEdge وFirefox وSafari وOpera وAndroid وOpera Mobile وMobile Safari وFirefox Mobile وFirefox iOS وChrome Mobile وChrome Mobile iOS والمزيد (انظر مرة أخرى القائمة الكاملة أعلاه).
ملاحظة رقم 2: منذ الإصدار 2.0.0 من Fakeuser-agent، أصبحت أسماء المتصفحات حساسة لحالة الأحرف!
إذا كنت تريد تحديد أنظمة التشغيل الخاصة بك، فيمكنك القيام بذلك عبر وسيطة os
(الافتراضي هو: ["Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"]
).
في هذا المثال، لن تتمكن إلا من استعادة وكلاء مستخدم Linux:
from fake_useragent import UserAgent
ua = UserAgent ( os = 'Linux' )
ua . random
ملاحظة: منذ الإصدار 2.0.0 من Fakeuser-agent، أصبحت أسماء نظام التشغيل حساسة لحالة الأحرف!
يمكنك أيضًا تحديد نوع الأنظمة الأساسية التي تريد استخدامها، ويمكنك القيام بذلك عبر وسيطة platforms
(الافتراضي هو ["desktop", "mobile", "tablet"]
. سيعرض هذا المثال فقط وكلاء مستخدم عشوائيين من جهاز محمول جهاز:
from fake_useragent import UserAgent
ua = UserAgent ( platforms = 'desktop' )
ua . random
إذا كنت تريد إرجاع سلاسل وكيل المستخدم الأحدث، فيمكنك اللعب باستخدام وسيطة min_version
(القيمة الافتراضية هي: 0.0
، مما يعني أن جميع وكلاء المستخدم سوف يتطابقون).
في هذا المثال، تحصل فقط على وكلاء المستخدم الذين لديهم الحد الأدنى من الإصدار 120.0:
from fake_useragent import UserAgent
ua = UserAgent ( min_version = 120.0 )
ua . random
للتوافق مع الإصدارات السابقة، لا يزال من الممكن تحديد الحد الأدنى لنسبة الاستخدام باستخدام الوسيطة min_percentage
. ومع ذلك، لا تحتوي القائمة الحالية لوكلاء المستخدم على هذه الإحصائية. لذلك سوف يتطابق جميع وكلاء المستخدم.
تلميح: بالطبع يمكنك الجمع بين كل هذه الحجج حسب رغبتك!
منذ الإصدار 1.3.0، نقدم لك الآن أيضًا خصائص "get" التالية التي تُرجع قاموس Python بالكامل لـ UA، بدلاً من سلسلة وكيل المستخدم فقط:
تحذير يتم إرجاع كائنات JSON الأولية (في قواميس Python) "كما هي". وهذا يعني أن بنية البيانات هذه يمكن أن تتغير في المستقبل!
انتبه إلى أن خصائص "الحصول على" أدناه قد لا تُرجع نفس أزواج المفاتيح/القيمة في المستقبل. استخدم
ua.random
أو ما شابه ذلك كما هو مذكور أعلاه، إذا كنت تريد استخدام واجهة مستقرة.
from fake_useragent import UserAgent
ua = UserAgent ()
# Random user-agent dictionary (object)
ua . getRandom
# {'percent': 0.8, 'useragent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 Edg/116.0.1938.76', 'system': 'Edge 116.0 Win10', 'browser': 'edge', 'version': 116.0, 'os': 'win10'}
# More get properties:
ua . getFirefox
# {'percent': 0.3, 'useragent': 'Mozilla/5.0 (Windows NT 10.0; rv:109.0) Gecko/20100101 Firefox/118.0', 'system': 'Firefox 118.0 Win10', 'browser': 'firefox', 'version': 118.0, 'os': 'win10'}
ua . getChrome
ua . getSafari
ua . getEdge
# And a method with an argument.
# This is exactly the same as using: ua.getFirefox
ua . getBrowser ( 'firefox' )
يمكنك تجاوز السلسلة الاحتياطية باستخدام المعلمة fallback
، وفي حالات نادرة جدًا فشل شيء ما:
from fake_useragent import UserAgent
ua = UserAgent ( fallback = 'your favorite Browser' )
# in case if something went wrong, one more time it is REALLY!!! rare case
ua . random == 'your favorite Browser'
إذا حاولت الحصول على متصفح غير معروف:
from fake_useragent import UserAgent
ua = UserAgent ()
print ( ua . unknown )
#Error occurred during getting browser: randm, but was suppressed with fallback.
#Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
إذا كنت بحاجة إلى تأمين بعض السمات من تجاوزها في UserAgent بواسطة طريقة __getattr__
، فاستخدم safe_attrs
يمكنك تمرير أسماء السمات هناك. سيمنعك هذا على الأقل من رفع FakeUserAgentError عند عدم العثور على السمة.
على سبيل المثال، عند استخدام وكيل مستخدم مزيف مع injections <https://github.com/tailhook/injections>
فإنك تحتاج إلى:
from fake_useragent import UserAgent
ua = UserAgent ( safe_attrs = ( '__injections__' ,))
من فضلك، لا تستخدم إذا كنت لا تفهم لماذا تحتاج هذا. هذا سحر للحالات القصوى النادرة.
تأكد من أنك تستخدم أحدث إصدار!
pip install --upgrade fake-useragent
أو إذا لم ينجح ذلك، فحاول تثبيت أحدث إصدار للحزمة مثل هذا ( 2.0.1
كمثال، تحقق من أحدث إصدار موجود على PyPi):
pip install fake-useragent==2.0.1
التحقق من الإصدار عبر وحدة تحكم Python:
import fake_useragent
print ( fake_useragent . __version__ )
وأنت دائما موضع ترحيب لنشر القضايا.
من فضلك لا تنسى أن تذكر الإصدار الذي تستخدمه.
بيانات وكيل المستخدم التي نسترجعها من user-agents.net. يتم تخزين البيانات بتنسيق JSONlines. الملف موجود في الدليل: src/fake_useragent/data
.
نحن نعمل حاليًا على برنامج نصي جديد للأتمتة (راجع الإصدار رقم 333) لجلب البرامج النصية لوكيل المستخدم من user-agents.net وتحديث وكلاء المستخدم من حين لآخر.
يعد ملف البيانات JSON جزءًا من حزمة Python، راجع pyproject.toml. اقرأ المزيد حول دعم ملفات البيانات.
نحن نشجع على استخدام بيئة بايثون الافتراضية قبل تثبيت حزم Pip، كما يلي:
python -m virtualenv env
source env/bin/activate
pip install -e .
pip install -r requirements.txt
tox
لإصلاح الواردات باستخدام راف:
pip install -r requirements.txt
ruff check --select= " I " --fix .
إصلاح أخطاء تنسيق الكود الأسود:
pip install -r requirements.txt
black .
ملحوظة: عند إصدار ruff v1.0، فمن المرجح أن نتحرك بالكامل نحو ruff
بدلاً من black
.
2.0.1
2.0.0 4 ديسمبر 2024
"Google", "Chrome", "Firefox", "Edge", "Opera"," Safari", "Android", "Yandex Browser", "Samsung Internet", "Opera Mobile", "Mobile Safari", "Firefox Mobile", "Firefox iOS", "Chrome Mobile", "Chrome Mobile iOS", "Mobile Safari UI/WKWebView", "Edge Mobile", "DuckDuckGo Mobile", "MiuiBrowser", "Whale", "Twitter", "Facebook", "Amazon Silk"
"Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"
"desktop", "mobile", "tablet"
1.5.1 16 مارس 2024
1.5.0 8 مارس 2024
1.4.0 24 نوفمبر 2023
1.3.0 2 أكتوبر 2023
ua.getRandom
الجديد، ua.getFirefox
، ua.getChrome
، ua.getSafari
. والطريقة العامة: ua.getBrowser(..)
(على سبيل المثال. getBrowser('firefox')
) )os
"windows" للتحقق من قيمتي win10
و win7
(سابقًا التحقق فقط من win10
)، وبالتالي إرجاع المزيد من UAs1.2.1 2 أغسطس 2023
min_percentage
1.2.0 2 أغسطس 2023
use_external_data=True
و verify_ssl
. إذا كنت تستخدم هذه المعلمات، فما عليك سوى إزالتها في التعليمات البرمجية الخاصة بك!1.1.3 20 مارس 2023
1.1.2 8 فبراير 2023
1.1.1 4 ديسمبر 2022
1.1.0 26 نوفمبر 2022
pkg_resource
كآلية احتياطية في محاولة استرداد ملف بيانات JSON المحلي1.0.1 10 نوفمبر 2022
importlib-metadata
importlib-resources
كتبعياتfiles()
importlib_metadata
الآن أيضًا على إصدار Python قبل 3.8MANIFEST.in
القديم1.0.0 17 نوفمبر 2022
myproject.toml
مع دعم package-data
0.1.14 5 نوفمبر 2022
pyproject.toml
+ التحقق من بناء الجملةtox.ini
0.1.13 21 أكتوبر 2022
browsers
، مما يسمح لك بتجاوز أسماء المتصفحات التي تريد استخدامهاblack
لصالح فليك0.1.12 31 مارس 2022
0.1.11 4 أكتوبر 2018
s3 + cloudfront
الاحتياطي إلى heroku.com
، نظرًا لأن شخصًا من فلوريدا قدم ما يقرب من 25 مليون طلب الشهر الماضي0.1.10 11 فبراير 2018
cloudfront
0.1.9 11 فبراير 2018
w3schools.com
الذي تمت إعادة تسميته إلى IE/Edge
إلى Edge/IE
heroku.com
الاحتياطي إلى s3 + cloudfront
0.1.8 2 نوفمبر 2017
useragentstring.com
Can't connect to local MySQL server through socket
0.1.7 2 أبريل 2017
0.1.6 2 أبريل 2017
use_cache_server
لا تؤثر على أي شيءw3schools.com <https://www.w3schools.com/browsers/browsers_stats.asp>
_ تم النقل إلى https
verify_ssl
، بشكل افتراضي يكون True
(سياق urllib.urlopen
ssl لـ Python 2.7.9- و3.4.3- غير مدعوم)0.1.5 28 فبراير 2017
ua.edge
إلى Internet ExplorerEdge
use_cache_server
fake_useragent.settings.HTTP_TIMEOUT
إلى 5 ثوانٍ0.1.4 14 ديسمبر 2016
fallback
، في حالة عدم توفر مصادر البياناتfake_useragent.FakeUserAgent
لـ fake_useragent.UserAgent
fake_useragent.UserAgentError
لـ fake_useragent.FakeUserAgentError
fake_useragent.settings.HTTP_TIMEOUT
إلى 3 ثوانٍsafe_attrs
لمنع التجاوز بواسطة __getattr__
0.1.3 24 نوفمبر 2016
fake_useragent.errors.FakeUserAgentError
في حالة عدم وجود طريقة لتنزيل البياناتfake_useragent.errors.FakeUserAgentError
بدلاً من None
في حالة وجود متصفح غير معروفgevent.sleep
في بيئة gevent
المصححة عند محاولة تنزيل البياناتXXX ×××××××،××××
يمكنك زيارة صفحة المؤلفين.