ScrapingBee ist eine Web -Scraping -API, die kopflose Browser behandelt und Proxies für Sie dreht. Das Python SDK erleichtert es, mit Scrapingbees -API zu interagieren.
Sie können ScrapingBee Python SDK mit PIP installieren.
pip install scrapingbee
Das ScrapingBee Python SDK ist ein Wrapper in der Anfragebibliothek. ScrapingBee -Unterstützung erhalten und postete Anfragen.
Melden Sie sich bei Scrapingbee an, um Ihren API -Schlüssel und einige kostenlose Credits zu erhalten, um loszulegen.
>> > 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>...'
ScrapingBee nimmt verschiedene Parameter zum Rendern von JavaScript, durchzuführen, ein benutzerdefiniertes JavaScript -Skript auszuführen, verwenden einen Premium -Proxy aus einer bestimmten Geolokalisierung und vielem mehr.
Sie finden alle unterstützten Parameter in der Dokumentation von Scrapingbee.
Sie können benutzerdefinierte Cookies und Header wie normalerweise mit der Anfragebibliothek senden.
Hier ist ein kleiner Vorbild, wie man einen Screenshot aus dem Scrapingbee -Blog in seiner mobilen Auflösung abrufen und speichert.
>> > 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 ist das beliebteste Python -Web -Scraping -Framework. Sie können die API von Scrapingbee problemlos in die Scrapy Middleware integrieren.
Der Client enthält einen Wiederholungsmechanismus für 5xx -Antworten.
>> > 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
)