SctringBee est une API de grattage Web qui gère les navigateurs sans tête et tourne pour vous. Le SDK Python facilite l'interaction avec l'API de SctringBee.
Vous pouvez installer Sdk SDK Python SctringBee Python avec PIP.
pip install scrapingbee
Le SDK Python SctringBee Python est un wrapper autour de la bibliothèque des demandes. SctringBee prend en charge les demandes Get et Post.
Inscrivez-vous à SctringBee pour obtenir votre clé API et quelques crédits gratuits pour commencer.
>> > 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>...'
SctringBee prend divers paramètres pour rendre JavaScript, exécuter un script JavaScript personnalisé, utiliser un proxy premium à partir d'une géolocation spécifique et plus encore.
Vous pouvez trouver tous les paramètres pris en charge sur la documentation de SctringBee.
Vous pouvez envoyer des cookies et des en-têtes personnalisés comme vous le feriez normalement avec la bibliothèque de demandes.
Ici, un peu illustre comment récupérer et stocker une capture d'écran du blog SctringBee dans sa résolution mobile.
>> > 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 est le cadre de grattage Web Python le plus populaire. Vous pouvez facilement intégrer l'API de SctringBee avec le middleware de Scrapy.
Le client comprend un mécanisme de réessayer pour les réponses 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
)