php如何抓取网页数据库(我的目标是从一个网页上抓取数据,我必须使用PowerShell登录 )
优采云 发布时间: 2021-11-11 12:20php如何抓取网页数据库(我的目标是从一个网页上抓取数据,我必须使用PowerShell登录
)
我的目标是从网页中抓取数据,我必须使用 PowerShell 登录。坦率地说,这是一个房地产类型网站,我不知道其他人正在试图抓取这些数据,所以我真的不想透露完整的网址。
我有工作代码,我相信可以登录网页,但尝试访问除此之外的任何 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