Created
October 12, 2017 00:32
-
-
Save accidentalrebel/79fda4536f799f4a4873e55aff21a977 to your computer and use it in GitHub Desktop.
Searches for Vape related groups and saves the scraped data (Group name and number of members). The Haxe script generates a runnable iMacros .imm file (See facebook_vape_group_lister.iim)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Main | |
{ | |
static function main() | |
{ | |
var test : String = "test"; | |
var macroString : String = ""; | |
macroString += " | |
VERSION BUILD=11.5.498.2403 | |
TAB T=1 | |
TAB CLOSEALLOTHERS | |
URL GOTO=\"https://www.facebook.com/search/groups/?q=vape\" | |
"; | |
for ( index in 0...200 ) { | |
macroString += " | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop " + (index+1) + " | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
URL GOTO=javascript:window.scrollBy(0,20000) | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:\"_fbBrowseXuiResult__profileImageLink *\" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:\"serp_result_link*\" EXTRACT=TXT | |
SET groupName EVAL(\"var groupName= \\\"{{!EXTRACT}}\\\"; groupName.replace(/(\\\\r\\\\n|\\\\r|\\\\n)/gm,\\\"\\\");\") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:\"_fbBrowseXuiResult__profileImageLink *\" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:\"serp_result_link*\" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:\"{\\\"ct\\\":\\\"sub_headers\\\"}\" EXTRACT=TXT | |
SET groupType EVAL(\"var extracted = \\\"{{!EXTRACT}}\\\"; if ( extracted == \\\"Closed GroupClosed Group\\\" ) { \\\"Closed Group\\\"; } else if ( extracted == \\\"Secret GroupSecret Group\\\" ) { \\\"Secret Group\\\"; } else if ( extracted == \\\"Public GroupPublic Group\\\" ) { \\\"Public Group\\\"; } else { extracted; }\") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:\"_fbBrowseXuiResult__profileImageLink *\" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:\"*\" EXTRACT=TXT | |
SET hasJoined EVAL(\"if( \\\"{{!EXTRACT}}\\\" == \\\"Join\\\" ) { \\\"NO\\\"; } else { \\\"YES\\\"; }\") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:\"_fbBrowseXuiResult__profileImageLink *\" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:\"_52eh\" EXTRACT=TXT | |
SET membersCount EVAL(\"var extract = \\\"{{!EXTRACT}}\\\"; extract = extract.replace(\\\" members\\\", \\\"\\\"); extract = extract.replace(\\\",\\\", \\\"\\\"); parseInt(extract);\") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:\"_fbBrowseXuiResult__profileImageLink *\" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:\"_52eh\" EXTRACT=TXT | |
SET membersCount EVAL(\"var extract = \\\"{{!EXTRACT}}\\\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\\\" members\\\", \\\"\\\"); extract = extract.replace(\\\",\\\", \\\"\\\"); parseInt(extract); } else { {{membersCount}}; }\") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
\n"; | |
} | |
macroString += " | |
TAB CLOSEALLOTHERS | |
TAB T=1 | |
TAB CLOSE | |
"; | |
sys.io.File.saveContent("C:\\Users\\ARebel\\Dropbox\\imacros\\macros\\facebook_vape_group_lister.iim", macroString); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
VERSION BUILD=11.5.498.2403 | |
TAB T=1 | |
TAB CLOSEALLOTHERS | |
URL GOTO="https://www.facebook.com/search/groups/?q=vape" | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 1 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 2 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 3 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 4 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 5 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 6 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 7 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 8 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 9 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' INIT | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
SET !EXTRACT_TEST_POPUP NO | |
SET defaultTimeOutStep 10 | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET currentLoop 10 | |
SET nextLoop {{currentLoop}} | |
ADD nextLoop 1 | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
'' START | |
''''''''''''''''''''''''''''''''''''''''''''''''' | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=TXT | |
SET groupName EVAL("var groupName= \"{{!EXTRACT}}\"; groupName.replace(/(\\r\\n|\\r|\\n)/gm,\"\");") | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"serp_result_link*" EXTRACT=HREF | |
SET groupURL {{!EXTRACT}} | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=DIV ATTR=data-bt:"{\"ct\":\"sub_headers\"}" EXTRACT=TXT | |
SET groupType EVAL("var extracted = \"{{!EXTRACT}}\"; if ( extracted == \"Closed GroupClosed Group\" ) { \"Closed Group\"; } else if ( extracted == \"Secret GroupSecret Group\" ) { \"Secret Group\"; } else if ( extracted == \"Public GroupPublic Group\" ) { \"Public Group\"; } else { extracted; }") | |
'' We then try to check if the button Join is present or not | |
TAG POS={{currentLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R1 TYPE=A ATTR=data-testid:"*" EXTRACT=TXT | |
SET hasJoined EVAL("if( \"{{!EXTRACT}}\" == \"Join\" ) { \"NO\"; } else { \"YES\"; }") | |
'' We set the next section as our anchor to get the members count | |
'' The reason for this is that we want to skip the extracting of the description which is usually | |
'' long and causes a memory overflow. | |
SET !TIMEOUT_STEP 1 | |
SET !ERRORIGNORE YES | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-1 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract);") | |
'' If the previous extract results in NaN. Then wo move back up to get the previous element | |
'' which is usually the members count | |
TAG POS={{nextLoop}} TYPE=A ATTR=class:"_fbBrowseXuiResult__profileImageLink *" EXTRACT=TXT | |
SET !EXTRACT NULL | |
TAG POS=R-2 TYPE=DIV ATTR=class:"_52eh" EXTRACT=TXT | |
SET membersCount EVAL("var extract = \"{{!EXTRACT}}\"; if ( isNaN({{membersCount}}) ) { extract = extract.replace(\" members\", \"\"); extract = extract.replace(\",\", \"\"); parseInt(extract); } else { {{membersCount}}; }") | |
SET !ERRORIGNORE NO | |
SET !TIMEOUT_STEP {{defaultTimeOutStep}} | |
SET !EXTRACT NULL | |
ADD !EXTRACT {{groupName}} | |
ADD !EXTRACT {{membersCount}} | |
ADD !EXTRACT {{hasJoined}} | |
ADD !EXTRACT {{groupType}} | |
ADD !EXTRACT {{groupURL}} | |
SAVEAS TYPE=EXTRACT FOLDER=* FILE=* | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment