powershell - 登录页面后面的网页抓取内容
问题描述
我的目标是从我必须使用 PowerShell 登录的网页中抓取数据。为了透明,这是一个房地产类型的网站,我不知道有其他人试图抓取这些数据,所以我真的不想泄露完整的 URL。
我有工作代码,我相信它可以登录到网页,但试图访问除此之外的任何 URL 以某种方式表示我没有登录并且不返回任何数据。
此代码是在登录和导航到所需内容列表时观察 Opera 浏览器的开发工具的结果。我可以右键单击并将 GET 请求复制为 PowerShell,但即使将其发回也没有成功。
$DashboardGet
返回带有登录 URL 的链接属性,它告诉我我正在发送的数据(在标题中?或在 SessionVariable 中)没有正确地保持会话登录?
但是我可以看到并确认$PageLogin
确实已登录该网站,但我似乎无法获取除此之外的任何内容。
$base_URL = 'https://site.webpage.com/'
$site = Invoke-WebRequest $base_URL
$user = Import-Clixml C:\Apps\website_login.xml
$site.Forms.fields.email = $user.UserName
$site.Forms.fields.password = $user.Password
$LoginPayload = $site.Forms.fields | ConvertTo-Json
$loginSite = $site.Forms[0].Action
$PageLogin = Invoke-WebRequest $loginSite -UseBasicParsing -Method POST -Body $LoginPayload -SessionVariable ScapeWebPage
$ScapeWebPage.Cookies.Add((New-Object System.Net.Cookie("XSRF-TOKEN", "lots of boring characters here", "/", "site.webpage.com")))
$ScapeWebPage.Cookies.Add((New-Object System.Net.Cookie("key01", "more boring characters", "/", "site.webpage.com")))
$DashboardGet = Invoke-WebRequest -UseBasicParsing -Uri "https://site.webpage.com/app/dashboard" `
-WebSession $ScapeWebPage -Method GET
$DashboardGet
解决方案
推荐阅读
- objective-c - ObjectForKey 有时返回 nil
- scala - 从 HBase 检索和格式化数据到 scala Dataframe
- python - 跨多个文件(Docker、Python、Ansible 和 Bash)应用用户配置值的最佳方法?
- php - setcookie() PHP 不使用变量
- grails - 如何将隐式参数传递给Grails中的闭包?
- c - 搜索结构数组以查找匹配和输出
- c++ - 使用固定大小类型时强制位域的符号(C++14 之前)
- vb.net - 如何做某事
- html - 为什么我的图像不显示?感觉我什么都试过了
- swift - 使用区分子节点从 Firebase 检索节点