Grab the Chrome information from the Developers tab to complete the script and adjust the getElementsby[Tag/Class/ID] as needed.
Also, ensure to remove the -UseBasicParsing param in the Webrequire generated by chrome.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession $session.UserAgent = "Mozilla/6.0 (Windows NT 11.0; Win64; x64) AppleWebKit/568.36 (KHTML, like Gecko) Chrome/122.0.5005.63 Safari/507.36" $outfile = "C:\Users\MyUsername\AppData\Local\Temp\Data.csv" $csvfile = {} | Select "Question","AnswerA","AnswerB","AnswerC","AnswerD","Explanation" for ($i=1; $i -le 20; $i++) { $Webpage = Invoke-WebRequest -Uri "https://www.MyWebsite.com/" ` -WebSession $session ` -Headers @{ "authority"="www.MyWebsite.com" "method"="GET" } $Question = $Webpage.ParsedHtml.body.getElementsByClassName("p-quiz_question")[0].textContent.replace('You left this question blank, so we scored it as incorrect.','') $AnswerA = $Webpage.ParsedHtml.body.getElementsByClassName("MyClass")[0].TextContent $AnswerB = $Webpage.ParsedHtml.body.getElementsByClassName("MyClass")[1].TextContent $AnswerC = $Webpage.ParsedHtml.body.getElementsByClassName("MyClass")[2].TextContent $AnswerD = $Webpage.ParsedHtml.body.getElementsByClassName("MyClass")[3].TextContent $Explanation = $Webpage.ParsedHtml.body.getElementsByClassName("MyClass-container")[0].textContent $Question $AnswerA $AnswerB $AnswerC $AnswerD $Explanation Write-Host "" Write-Host "" $csvfile.Question = $Question $csvfile.AnswerA = $AnswerA $csvfile.AnswerB = $AnswerB $csvfile.AnswerC = $AnswerC $csvfile.AnswerD = $AnswerD $csvfile.Explanation = $Explanation $csvfile | Export-CSV $outfile –Append sleep(3) } |