DragingBee عبارة عن واجهة برمجة تطبيقات على شبكة الإنترنت تتولى متصفحات مقطوعة الرأس وتدور الوكلاء لك. يجعل Python SDK من السهل التفاعل مع واجهة برمجة تطبيقات DragingBee.
يمكنك تثبيت DragingBee Python SDK مع PIP.
pip install scrapingbee
DragingBee Python SDK عبارة عن غلاف حول مكتبة الطلبات. يدعم DragingBee الحصول على طلبات و Post.
الاشتراك في DragingBee للحصول على مفتاح API الخاص بك وبعض الاعتمادات المجانية للبدء.
>> > from scrapingbee import ScrapingBeeClient
>> > client = ScrapingBeeClient ( api_key = 'REPLACE-WITH-YOUR-API-KEY' )
>> > response = client . get (
'https://www.scrapingbee.com/blog/' ,
params = {
# Block ads on the page you want to scrape
'block_ads' : False ,
# Block images and CSS on the page you want to scrape
'block_resources' : True ,
# Premium proxy geolocation
'country_code' : '' ,
# Control the device the request will be sent from
'device' : 'desktop' ,
# Use some data extraction rules
'extract_rules' : { 'title' : 'h1' },
# Wrap response in JSON
'json_response' : False ,
# Interact with the webpage you want to scrape
'js_scenario' : {
"instructions" : [
{ "wait_for" : "#slow_button" },
{ "click" : "#slow_button" },
{ "scroll_x" : 1000 },
{ "wait" : 1000 },
{ "scroll_x" : 1000 },
{ "wait" : 1000 },
]
},
# Use premium proxies to bypass difficult to scrape websites (10-25 credits/request)
'premium_proxy' : False ,
# Execute JavaScript code with a Headless Browser (5 credits/request)
'render_js' : True ,
# Return the original HTML before the JavaScript rendering
'return_page_source' : False ,
# Return page screenshot as a png image
'screenshot' : False ,
# Take a full page screenshot without the window limitation
'screenshot_full_page' : False ,
# Transparently return the same HTTP code of the page requested.
'transparent_status_code' : False ,
# Wait, in miliseconds, before returning the response
'wait' : 0 ,
# Wait for CSS selector before returning the response, ex ".title"
'wait_for' : '' ,
# Set the browser window width in pixel
'window_width' : 1920 ,
# Set the browser window height in pixel
'window_height' : 1080
},
headers = {
# Forward custom headers to the target website
"key" : "value"
},
cookies = {
# Forward custom cookies to the target website
"name" : "value"
}
)
>> > response . text
'<!DOCTYPE html><html lang="en"><head>...'
يأخذ DragingBee العديد من المعلمات لتقديم JavaScript ، وتنفيذ برنامج نصي JavaScript مخصص ، واستخدم وكيلًا متميزًا من موقع جغرافي محدد وأكثر من ذلك.
يمكنك العثور على جميع المعلمات المدعومة على وثائق DragingBee.
يمكنك إرسال ملفات تعريف الارتباط والرؤوس المخصصة كما تفعل عادة مع مكتبة الطلبات.
هنا القليل من التوضيح حول كيفية استرداد وتخزين لقطة شاشة من مدونة DragingBee بدقة الهاتف المحمول.
>> > from scrapingbee import ScrapingBeeClient
>> > client = ScrapingBeeClient ( api_key = 'REPLACE-WITH-YOUR-API-KEY' )
>> > response = client . get (
'https://www.scrapingbee.com/blog/' ,
params = {
# Take a screenshot
'screenshot' : True ,
# Specify that we need the full height
'screenshot_full_page' : True ,
# Specify a mobile width in pixel
'window_width' : 375
}
)
>> > if response . ok :
with open ( "./scrapingbee_mobile.png" , "wb" ) as f :
f . write ( response . content )
Scrapy هو إطار تجريف الويب الأكثر شعبية على الويب. يمكنك بسهولة دمج واجهة برمجة تطبيقات DragingBee مع البرامج الوسيطة Scrapy.
يتضمن العميل آلية إعادة المحاولة لاستجابات 5xx.
>> > from scrapingbee import ScrapingBeeClient
>> > client = ScrapingBeeClient ( api_key = 'REPLACE-WITH-YOUR-API-KEY' )
>> > response = client . get (
'https://www.scrapingbee.com/blog/' ,
params = {
'render_js' : True ,
},
retries = 5
)