Open & WebScrape Chrome Tab in Background [Example] Macro (v9.2)

Use Case

  • WebScrape a URL in the Background

Demo of Entire Process

  • Note that the new Tab never appears
  • The Entire process is run in the Background
  • If Google Chrome was hidden before the macro was triggered, it would continue to be hidden.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MACRO:   Open & WebScrape Chrome Tab in Background [Example]

UPDATED: 2021-05-30 16:30 GMT-5

  • Ver 2.1 script was rewritten to ensure the new tab never appears.
  • Now the entire process is run in the background.
  • See above demo.

-~~~ VER: 2.1    2021-05-30 ~~~
Requires: KM 8.2.4+   macOS 10.11 (El Capitan)+
(Macro was written & tested using KM 9.0+ on macOS 10.14.5 (Mojave))

DOWNLOAD Macro File:

Open & WebScrape Chrome Tab in Background [Example].kmmacros
Note: This Macro was uploaded in a DISABLED state. You must enable before it can be triggered.
Macro was uploaded with a trigger of ⌃F1. Change to whatever you want.


ReleaseNotes

Author.@JMichaelTX -- based on script by Chris @ccstone

PURPOSE:

  • Open & WebScrape Chrome Tab in Background [Example]

HOW TO USE

  1. First, make sure you have followed instructions in the Macro Setup below.
  2. See the below "How to Use" Comment Action
  3. This macro is just an example written in response to a user's request. You will need to use as an example and/or change to meet your workflow automation needs.

MACRO SETUP

  • Carefully review the Release Notes and the Macro Actions
    • Make sure you understand what the Macro will do.
    • You are responsible for running the Macro, not me. ??
      .
      Make These Changes to this Macro
  1. Assign a Trigger to this Macro .
  2. Move this macro to a Macro Group that is only Active when you need this Macro.
  3. ENABLE this Macro, and the Macro Group it is in.
    • For more info, see KM Wiki article on Macro Activation
      .
  • REVIEW/CHANGE THE FOLLOWING MACRO ACTIONS:
    (all shown in the magenta color)
    • CHANGE to URL that you want to open and webscrape
      • DESC
    • CHANGE to JavaScript to WebScrape Above Web Page
      • AppleScript uses a 2 sec pause after URL is opened.

REQUIRES:

  1. KM 9.0+ (may work in KM 8.2+ in some cases)
  2. macOS 10.12.6 (Sierra)+

TAGS: @Example @WebScrape @Backgound @Chrome

Thanks Michael.

Based on my limited understand of the AppleScript, what the Macro does is: open a new tab as active tab (foreground), do the web scrape, then switch active tab to the original active tab. So in essence, the web scrape part is still in active tab, not in the background.

Hey Henry,

Nyet. Scraping takes place in the new tab, and this is documented in the script:

tell newTab
   
   --- Set URL of New Tab ---
   set jsResults to execute javascript jsCmdOpenURLStr
   delay 2.0 -- would be better to do a pause util web page element is loaded
   
   --- WebScrape This New Web Page ---
   set jsResults to execute javascript jsCmdWebScrapeStr
end tell

Did you run the macro?

Did it not work correctly? It worked as expected for me.

-Chris

1 Like

Yes I did run the Macro, the scraping takes place in the new tab, but it is scraping when the new tab is the active tab. The restore statement is after scraping is done.

By "background", what I meant is the new tab should never be the active tab. From my understanding, KM runs javascript at the active tab of the front window. If this is the case, then I think I have to look for something else for my use case (like headless chrome etc).

Thanks.

Just uploaded a new version.

I think this new version should meet your needs.
The entire process is run in the background.
See the animated GIF demo above in my OP.

1 Like

Yes this worked!

"tell newTab" did the trick to have the javascript executed on on newly tab which is not the active tab

Thanks!!

1 Like

Actually, what did the trick was changing how the URL was set for the new tab:

set newTab to make new tab with properties {URL:urlStr}

I was always using tell new tab to execute the JavaScript.

1 Like

This statement actually opens new tab as active tab. I put 'delay 5' after this statement and it does stay in the new tab for 5 seconds then switches back to origTab. Without delay statement, Chrome just switched back to the origTab so quick that our eyes don't even notice it.