Someone asked me if I had a tool that would look at the clipboard and return only the URL or Rip the URL from the Clipboard. (The clipboard has various formats like: Files, Text, Rich Text Format, HTML, Images, etc.).
I used the cool WinClip library which can be grabbed here: https://autohotkey.com/board/topic/74670-class-winclip-direct-clipboard-manipulations/ and, with the help of maestrith, wrote a script which returns the various items on the clipboard in HTML format as an object.
Rip the URL from the Clipboard
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
Browser_Back:: ;Change this hotkey to what you want
Clip:=Get_Clipboard_Data() ;Call the function and return the HTML data in an object
MsgBox % clip.1.HREF
Clipboard:=CB ;restore Clipboard
Script Highlight: Long-pressing Hotkey to Exit a script
The below script is more of an example of how you can have more than one hotkey for a given key by tying it to how long you press the key. In the below script, if you hold down Escape longer than 1/2 a second it will close the active program.
PowerPoint Deck presented in Intro to Web Scraping
Q) What is an API? (Application Programming Interface?)
A) Basically it is how devices (computers, tablets, phones, servers, etc) talk to each other.
Q) What are examples of common API calls
A) Below are a list of some examples (but the list is limitless)
Web Browser pulling up products on Amazon.com
Application / Software querying products for sale on Amazon.com
App on your phone getting latest Weather
Database pulling updated sales report
Using your Tablet to Select movies to watch on Netflix
DropBox application syncing files between your computer & cloud
Using Web browser to access files in DropBox
Q) What are the Main Differences between Webservice / API call & WebBrowser
Q) What is the HTML DOM: Document Object Model
A) Think of the DOM as the “road map” for a webpage. Depending on what you are trying to get/set, you’ll rely on the DOM to get the exact element you’re looking for. Below is an image which stresses the more-frequently-used parts.
Q) How does a Family Tree similar to the DOM?
A) Both are “hierarchical” and, depending on what elements are populated, you can reliably “talk” to the correct node. The first tree below shows how some nodes have all elements populated while some are missing some (like Name and ID)
Q) What happens if a new Node is inserted in the Tree?
A) It depends on which element you are looking at. Names and IDs probably will not change however Tagnames often will. This is why it is recommended to first use IDs, then Names, then ClassNames. Use Tagname last (or go up the tree a bit and grab an ID/Name then use that “branch”)
Q) What are the frequently used methods for selecting an Element?
A) The methods below are sorted by the most reliable/stable (not presence). When ID is present- use it! If no ID, Name is another great one… Classname is also becoming more reliable
getElementByID– Great because if it is present it is should always unique
getElementsByName– While not required to be unique, it often is so very reliable
getElementsByClassName– Often unique and present
getElementsByTagName– Check if there is an ID/name above it, then jump “down” to it first then use TagName)
querySelector/querySelectorAll- Most flexible but is the most complicated- (If you know CSS, this is much not hard to adapt)
Q) What are Frequently used Get/Set/Trigger HTML Elements?
A) The below are the most frequently used however this is highly tied to what your goal is.
.click() – Clicks the element
.fireEvent(“onclick”) – Fires the click event (sometimes needed to trigger the event)
.focus() – Place the cursor in the element/edit field (set cursor)
.selectedIndex() – Dropdown box selection
.checked() – Radio / Checkbox selection
Properties (Get & Set):
innerText – the plain-text for the element
.value – the plain-text for the element
.outerHTML – the HTML for the element
The-Automator – A lot of tutorial videos, scripts, tools, and ideas what to scrape