EventFireTime
The EventFireTime is an interface which defines the methods that a fire time must have and so the addEventCallback method can take different types of fire times.
A number of different types of classes based on this interface have been defined for you which call out the various parts of a scrape that you can add event handlers to. Those are defined below.
ExtractorPatternEventFireTime
ExtractorPatternEventFireTime
Enum
- BeforeExtractorPattern Before an extractor is applied (including before any scripts on it run). The returned value should be a boolean and indicates whether the extractor should be run or not. Any non-boolean result is the same as true. Also note that regardless of whether the extractor will be run or not, the event for after extractor pattern will still be fired.
- AfterExtractorPatternAppliedButBeforeScripts After an extractor is applied (but before any scripts on it run &emdash; including the after apparent match scripts).
- AfterEachExtractorMatch After each match of an extractor. This will be applied before any of the "After each pattern match" scripts are applied.
- AfterExtractorPattern After an extractor is applied (including any scripts on it run).
Change Log
Version |
Description |
6.0.55a |
Introduced for pro and enterprise editions. |
Examples
How to use the EventFireTime with the session.addEventcallback method.
session.addEventCallback(ExtractorPatternEventFireTime.AfterEachExtractorMatch, handler);
ScrapeableFileEventFireTime
ScrapeableFileEventFireTime
Enum
- BeforeScrapeableFile Before a scrapeable file is launched (inlcuding before any scripts on it run).
- BeforeHttpRequest Fired right before the http request (after any "before scrapeable fie" scripts, and wil fire each time the request is retired). If it returns a non-null String, that will be used as the response instead of issuing a request. This response will still get passed into the AfterHttpRequest even, but it will not pass through any tidying.
- AfterHttpRequest Fire right after the http response and running tidy, if set, but before anything else happens. Returns the data that should be used as the response data.
- AfterScrapeableFile After a scrapeable file is completed (including afer any scripts on it run).
- OnHttpRedirect* Called when a redirect will occur, and returns true if a redirect should occur or false if it should not (any non boolean results in no chanage).
*Note: When using the Async HTTP client you will have access to the request builder from ScrapeableFileEventData.getRedirectRequestBuilder() which can be used to modify and adjust the request before it is sent. If you use the Apache HTTP client the getRedirectRequestBuilder() method will always return null.
Change Log
Version |
Description |
6.0.55a |
Introduced for pro and enterprise editions. |
Examples
How to use the EventFireTime with the session.addEventcallback method.
session.addEventCallback(ScrapeableFileEventFireTime.BeforeScrapeableFile, handler);
getRedirectToURL
String scrapeableFileEventData.getRedirectToURL ( )
Description
Returns the RedirectToURL value for the object.
Parameters
This method does not receive any parameters.
Return Values
Returns the RedirectToURL value for the object.
Change Log
Version |
Description |
6.0.55a |
Available for all editions. |
Examples
Get the redirect URL
public Object handleEvent(EventFireTime fireTime, ScrapeableFileEventData data) {
String url = data.getRedirectToURL();
// do something
}
ScriptEventFireTime
ScriptEventFireTime
Enum
- AfterScript After a script is executed
- BeforeScript Before a script is executed
- OnScriptEnd Run when the script finishes executing. The difference between AfterScript and this is that AfterScript fires after the script is done running, and this runs after all the developer code has run but the script engine is still active. The return value is an injected string to execute, or null (or the empty string) to do nothing aside from execute the script code.
- OnScriptError Executes when an error occurs in a script.
- OnScriptStart Run when the script beings to execute. The difference between BeforeScript and this is that BeforeScript fires as preparation is made to launch a script, and this runs after all the default pre-script code is executed by the script engine, but before the developer code in the script. The return value is an injected string to execute, or null (or the empty string) to do nothing aside from execute the script code.
Change Log
Version |
Description |
6.0.55a |
Introduced for pro and enterprise editions. |
Examples
How to use the EventFireTime with the session.addEventcallback method.
session.addEventCallback(ScriptEventFireTime.OnScriptEnd, handler);
SessionEventFireTime
SessionEventFireTime
Enum
- AfterEndScripts After the scrape finishes and all
- NumRecordsSavedModified When the ScrapingSession.addToNumRecordsScraped(Object) is called, this will also be called. The returned value will be the actual value to add.
- StopScrapingCalled When the session is stopped, either by calling the stopScraping method or clicking the stop scraping button in the workbench.
- SessionVariableSet* Called whenever a session variable is set. This is called before the value is actually set. The variable value passed in will be the new value to be set, and the return value of the handler will be the actual value returned.
- SessionVariableRetrieved* Called whenever a session variable is retrieved. This is called after the value is retrieved. The variable value passed in will be the current value, and the return value of the handler will be the actual value returned.
*Note: Calling a setVariable or getVariable method in here WILL trigger the events for those again. Avoid infinite recursion please!
Change Log
Version |
Description |
6.0.55a |
Introduced for pro and enterprise editions. |
Examples
How to use the EventFireTime with the session.addEventcallback method.
session.addEventCallback(SessionEventFireTime.AfterEndScripts, handler);
StringOperationEventFireTime
StringOperationEventFireTime
Enum
- HttpParameterEncodeKey Called when an http parameter key (GET or POST) is encoded. The input string will be the value that is already encoded, and the return value should be the value to actually use.
- HttpParameterEncodeValue Called when an http parameter value (GET or POST) is encoded. The input string will be the value that is already encoded, and the return value should be the value to actually use.
Change Log
Version |
Description |
6.0.55a |
Introduced for pro and enterprise editions. |
Examples
How to use the EventFireTime with the session.addEventcallback method.
session.addEventCallback(StringOperationEventFireTime.HttpParameterEncodeKey, handler);