ผู้ปลอมแปลงผู้ใช้ที่เรียบง่ายทันสมัยพร้อมฐานข้อมูลในโลกแห่งความเป็นจริง
desktop
tablet
และ/หรือ UA mobile
)useragent
, percent
, type
, device_brand
, browser
, browser_version
, os
, os_version
และ platform
pip install fake-useragent
หรือหากคุณติดตั้ง Python / pip หลายเวอร์ชัน ให้ใช้ pip3
:
pip3 install fake-useragent
ตัวอย่างการใช้งานง่ายๆ ด้านล่าง โปรดดูบทถัดไปใน Readme นี้สำหรับการใช้งานขั้นสูงเพิ่มเติม:
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
คุณสมบัติเพิ่มเติมที่ผู้ใช้ตัวแทนปลอมมีให้ตั้งแต่ v1.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"]
)
ตัวอย่างนี้จะส่งคืน user-agent แบบสุ่มจาก Edge และ Chrome เท่านั้น:
from fake_useragent import UserAgent
ua = UserAgent ( browsers = [ 'Edge' , 'Chrome' ])
ua . random
หมายเหตุ: Fakeuser-agent รู้จักเบราว์เซอร์ต่างๆ: Chrome, Edge, Firefox, Safari, Opera, Android, Opera Mobile, Mobile Safari, Firefox Mobile, Firefox iOS, Chrome Mobile, Chrome Mobile iOS และอื่นๆ (ดูรายการทั้งหมดด้านบนอีกครั้ง)
หมายเหตุ #2: เนื่องจาก fakeuser-agent v2.0.0 ชื่อเบราว์เซอร์จะต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่!
หากคุณต้องการระบุระบบปฏิบัติการของคุณเอง คุณสามารถทำได้ผ่านอาร์กิวเมนต์ os
(ค่าเริ่มต้นคือ: ["Windows", "Linux", "Ubuntu", "Chrome OS", "Mac OS X", "Android", "iOS"]
)
ในตัวอย่างนี้คุณจะได้รับเฉพาะตัวแทนผู้ใช้ Linux เท่านั้น:
from fake_useragent import UserAgent
ua = UserAgent ( os = 'Linux' )
ua . random
หมายเหตุ: เนื่องจาก fakeuser-agent v2.0.0 ชื่อระบบปฏิบัติการจะต้องตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่!
คุณยังสามารถระบุประเภทของแพลตฟอร์มที่คุณต้องการใช้ คุณสามารถทำได้ผ่านอาร์กิวเมนต์ 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 แทนที่จะเป็นสตริงตัวแทนผู้ใช้เท่านั้น:
คำเตือน ออบเจ็กต์ Raw 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 เมื่อไม่พบแอตทริบิวต์
ตัวอย่างเช่น เมื่อใช้ useragent ปลอมที่มี 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-agent ที่เราดึงมาจาก user-agents.net ข้อมูลจะถูกจัดเก็บในรูปแบบ JSONlines ไฟล์อยู่ในไดเร็กทอรี src/fake_useragent/data
ขณะนี้เรากำลังทำงานกับสคริปต์อัตโนมัติใหม่ (ดูปัญหา #333) เพื่อดึงสคริปต์ user-agent จาก user-agents.net และอัปเดต user-agent เป็นครั้งคราว
ไฟล์ข้อมูล JSON เป็นส่วนหนึ่งของแพ็คเกจ Python โปรดดูที่ pyproject.toml อ่านเพิ่มเติมเกี่ยวกับการสนับสนุนไฟล์ข้อมูล
เราขอแนะนำให้ใช้สภาพแวดล้อมเสมือน Python ก่อนที่จะติดตั้งแพ็คเกจ 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 ธันวาคม 2567
"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 มีนาคม 2567
1.5.0 8 มีนาคม 2567
1.4.0 24 พฤศจิกายน 2566
1.3.0 2 ตุลาคม 2566
ua.getRandom
ใหม่ , ua.getFirefox
, ua.getChrome
, ua.getSafari
และวิธีการทั่วไป: ua.getBrowser(..)
(เช่น getBrowser('firefox')
)os
'windows' เพื่อตรวจสอบทั้งค่า win10
และ win7
(ก่อนหน้านี้ตรวจสอบเฉพาะ win10
เท่านั้น) จึงส่งคืน UA มากขึ้น1.2.1 2 สิงหาคม 2566
min_percentage
1.2.0 2 สิงหาคม 2566
use_external_data=True
และ verify_ssl
ถูก ลบออก หากคุณใช้พารามิเตอร์เหล่านั้น เพียงลบมันออกจากโค้ดของคุณ!1.1.3 20 มีนาคม 2566
1.1.2 8 กุมภาพันธ์ 2566
1.1.1 4 ธันวาคม 2565
1.1.0 26 พฤศจิกายน 2565
pkg_resource
เป็นกลไกทางเลือกในการพยายามดึงไฟล์ข้อมูล JSON ในเครื่อง1.0.1 10 พฤศจิกายน 2565
importlib-metadata
& importlib-resources
เป็นสิ่งอ้างอิงfiles()
ทำงานimportlib_metadata
ควรใช้งานได้กับ Python เวอร์ชันก่อน 3.8MANIFEST.in
ที่ล้าสมัย1.0.0 17 พฤศจิกายน 2565
myproject.toml
ด้วยการสนับสนุน package-data
0.1.14 5 พฤศจิกายน 2565
pyproject.toml
+ การตรวจสอบไวยากรณ์tox.ini
0.1.13 21 ตุลาคม 2565
browsers
เพื่อให้คุณสามารถแทนที่ชื่อเบราว์เซอร์ที่คุณต้องการใช้black
เพื่อสนับสนุน Flake0.1.12 31 มีนาคม 2565
0.1.11 4 ตุลาคม 2561
s3 + cloudfront
fallback ไปที่ heroku.com
เพราะมีคนจากฟลอริดาทำคำขอประมาณ 25 ล้านคำขอเมื่อเดือนที่แล้ว0.1.10 11 กุมภาพันธ์ 2561
cloudfront
url เล็กน้อย0.1.9 11 กุมภาพันธ์ 2561
w3schools.com
เปลี่ยนชื่อเป็น IE/Edge
เป็น Edge/IE
heroku.com
ไปที่ s3 + cloudfront
0.1.8 2 พฤศจิกายน 2560
useragentstring.com
Can't connect to local MySQL server through socket
0.1.7 2 เมษายน 2560
0.1.6 2 เมษายน 2560
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 กุมภาพันธ์ 2560
ua.edge
ใน Internet ExplorerEdge
use_cache_server
fake_useragent.settings.HTTP_TIMEOUT
เป็น 5 วินาที0.1.4 14 ธันวาคม 2559
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 พฤศจิกายน 2559
fake_useragent.errors.FakeUserAgentError
ในกรณีที่ไม่มีวิธีการดาวน์โหลดข้อมูลfake_useragent.errors.FakeUserAgentError
แทน None
ในกรณีที่เบราว์เซอร์ไม่รู้จักgevent.sleep
ในสภาพแวดล้อมที่มีการแก้ไข gevent
เมื่อพยายามดาวน์โหลดข้อมูลXXX xxxxxxxx,xxxx
คุณสามารถเยี่ยมชมหน้าผู้เขียน