User Agent String
One thing you may very rarely run into when using WebParser to parse a website, is that the site reacts to the browser or program you are connecting with, and might format the output differently depending on what capabilities it assumes you have. This is done by the site using the User Agent String that is sent as part of the HTTP header when connecting.
WebParser uses a User Agent String of "Rainmeter WebParser plugin" when accessing a site. If you wish to connect to a site in Rainmeter using a different User Agent String, you can do this by using cURL to get the entire site into a file, and then you can still use WebParser to parse this local file and return whatever results you want.
Getting cURL
What you need to do is go to https://curl.haxx.se/download.html, scroll down and find "Win32 - Generic" or "Win64 - Generic" as you desire, and select the latest version as a .zip file.
Unzip this file, and put it somewhere in your skin's @Resource folder where you can access it.
What User Agent String to use
You can decide what User Agent String you want to use by connecting to https://www.whatismybrowser.com/detect/what-is-my-user-agent in your browser and copying the string displayed there, or connect to http://www.useragentstring.com/pages/useragentstring.php if you want to manually choose one of many, many browsers and programs.
The approach
What we will do is use the RunCommand plugin to execute that curl.exe that we put in @Resources. We will pass it a URL and some parameters, and have it output the results to a file. We will then use the WebParser plugin to access this local file and parse it as we normally would.
An Example
This .rmskin includes version 7.48.0 32bit of curl
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
[Metadata]
Name=UserAgentString
Author=JSMorley
Version=May 30, 2016
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0
Information=Demonstrates using cURL.exe (included) to force a particular User Agent String when accessing and downloading a remote resource.
[Variables]
UserAgentString=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36
URL=https://www.whatismybrowser.com/detect/what-is-my-user-agent
OutputFile=#CURRENTPATH#MyAgent.html
[MeasureGetSiteWebParser]
Measure=Plugin
Plugin=WebParser
URL=#URL#
RegExp=(?siU)<h1>What is my User Agent?.*<div class="value">(.*)</div>
StringIndex=1
FinishAction=[!CommandMeasure MeasureGetSiteCURL "Run"]
[MeasureGetSiteCURL]
Measure=Plugin
Plugin=RunCommand
Program=""#@#curl\curl.exe""
Parameter=-s -k -A "#UserAgentString#" "#URL#"
OutputFile=#OutputFile#
OutputType=ANSI
FinishAction=[!CommandMeasure MeasureResultFile "Update"]
[MeasureResultFile]
Measure=Plugin
Plugin=WebParser
URL=file://#OutputFile#
RegExp=(?siU)<h1>What is my User Agent?.*<div class="value">(.*)</div>
StringIndex=1
[MeterResults]
Meter=String
MeasureName=MeasureGetSiteWebParser
MeasureName2=MeasureResultFile
FontSize=10
FontColor=255,255,255,255
SolidColor=47,47,47,255
Padding=5,5,5,5
AntiAlias=1
InlineSetting=Weight | 700
InlinePattern=WebParser User Agent String
InlineSetting2=Weight | 700
InlinePattern2=cURL User Agent String
Text=WebParser User Agent String#CRLF#%1#CRLF##CRLF#cURL User Agent String#CRLF#%2
The parameters I used on curl.exe are:
-s : Silent (no download progress & statistics)
-k : Allow insecure connection on https
-A : Set User Agent String
Note that I am not advocating using this approach to bypass checks that a site may do to "force" you to connect to it via a known browser, in order to ensure you at least are presented with advertising or other information displayed on the site. While this is very, very rare, it would be my opinion that this should be respected.