我到了登錄的地步,但在最后一步我從 Facebook 收到“無法處理您的請求”。
# Setup
#[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
$ProgressPreference = 'SilentlyContinue'
# Session
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$session.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
$session.Cookies.Add((New-Object System.Net.Cookie("datr", "value", "/", ".facebook.com"))) # Used to set Allow Cookies to Accepted, replace value with your own value form the datr cookie.
$url = 'https://facebook.com/'
# Creds and Form
$login = Invoke-WebRequest -Uri $url -WebSession $session
$form = $login.Forms[0]
$credential = Get-Credential # or Import-CliXml cred.xml
$form.Fields["email"] = $credential.GetNetworkCredential().username
$form.Fields["pass"] = $credential.GetNetworkCredential().password
# Request
$facebook = Invoke-WebRequest -Uri $url -WebSession $session -Method POST -Body $form.Fields
#$facebook.Content
想法:運行一個 powershell 腳本,提供憑據,它會轉到 Facebook,讓您登錄并在控制臺中輸出您總共擁有多少張照片。
uj5u.com熱心網友回復:
使用基于 Chromium 的瀏覽器 DevTools 為您生成 WebRequest 代碼
到目前為止,我發現最簡單的方法是使用 Chrome(或其他基于 chromium 的瀏覽器)的開發工具。這些工具將生成您需要的所有代碼。
- 轉到 Facebook 登錄頁面
- 按 F12 鍵打開 DevTools
- 打開
生成的代碼看起來像這樣
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession $session.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33" $session.Cookies.Add((New-Object System.Net.Cookie("fr", "0SmzDrtR5y3gEIe773d..BjT69C.eZ.AAA.0.0.BjHE333C.AWTZZ825DfGgk0", "/", ".facebook.com"))) $session.Cookies.Add((New-Object System.Net.Cookie("sb", "Qk8dY1sdf23MH4kHnd1F225Ap2akhXf", "/", ".facebook.com"))) $session.Cookies.Add((New-Object System.Net.Cookie("datr", "TEh3de4TYyf-7e2d36gFVo3wIpseiWg", "/", ".facebook.com"))) $session.Cookies.Add((New-Object System.Net.Cookie("wd", "881x863", "/", ".facebook.com"))) Invoke-WebRequest -UseBasicParsing -Uri "https://www.facebook.com/login/?privacy_mutation_token=eyJ0eXBlIjowLCJjcDFmVhd43324Glvbl90aW1dfslIjoxNjYyODY1MjE4LCJ4WxsD4Ooc2453l0ZV9pZCIDFg36MszgxMjI5MDc5NTsTQ2fQ==" ` -Method "POST" ` -WebSession $session ` -Headers @{ "authority"="www.facebook.com" "method"="POST" "path"="/login/?privacy_mutation_token=eyJ0eXBlIjowLCJjcDFmVhd43324Glvbl90aW1dfslIjoxNjYyODY1MjE4LCJ4WxsD4Ooc2453l0ZV9pZCIDFg36MszgxMjI5MDc5NTsTQ2fQ==" "scheme"="https" "accept"="text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" "accept-encoding"="gzip, deflate, br" "accept-language"="en-US,en;q=0.9" "cache-control"="max-age=0" "origin"="https://www.facebook.com" "referer"="https://www.facebook.com/" "sec-ch-ua"="`"Microsoft Edge`";v=`"105`", `" Not;A Brand`";v=`"99`", `"Chromium`";v=`"105`"" "sec-ch-ua-mobile"="?0" "sec-ch-ua-platform"="`"Windows`"" "sec-fetch-dest"="document" "sec-fetch-mode"="navigate" "sec-fetch-site"="same-origin" "sec-fetch-user"="?1" "upgrade-insecure-requests"="1" } ` -ContentType "application/x-www-form-urlencoded" ` -Body "jazoest=2923&lsd=AVoElEJYWu0&[email protected]&login_source=comet_headerless_login&next=&encpass=#PWD_BROWSER:5:16D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3EKNpw=="通過一些試驗和錯誤,這似乎是所需的最低限度。
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession # Keep from above generated code $session.Cookies.Add((New-Object System.Net.Cookie('datr', 'TEh3de4TYyf-7e2d36gFVo3wIpseiWg', '/', '.facebook.com'))) $body = [ordered]@{ lsd = 'AVoElEJYWu0' # Keep from above generated code email = '[email protected]' # update pass = 'mypassword123' # update } $params = @{ OutFile = 'c:\temp\facebook.html' Uri = 'https://www.facebook.com/login' Method = 'POST' Headers = @{ 'scheme' = 'https' 'accept' = 'text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' } WebSession = $session ContentType = 'application/x-www-form-urlencoded' Body = $body } $response = Invoke-WebRequest @params -PassThru
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/511480.html
