抓取动态网页( powershell动态网页内容爬取示例2017年2月28日在Powershell小技巧标签爬虫)
优采云 发布时间: 2021-10-09 03:16抓取动态网页(
powershell动态网页内容爬取示例2017年2月28日在Powershell小技巧标签爬虫)
Powershell 动态网页内容抓取示例
2017年2月28日在Powershell Tips tag crawler from pansal
1.目标网站如下:一个内部管理系统,但功能单一,使用极其不方便。该项目的目的是利用自动化手段抓取目标信息,并将其传输到本地数据库,进行定制化的数据分析和报告呈现。
2、实现思路:使用脚本工具(powershell)模拟网站的登录过程。合法登录当前会话,获取所需数据。
3.在本地存储cookie文件。Chrome 会安装 EditThisCookie 插件。然后登录目标网站并按f12查看cookie选项卡。全选复制并保存到本地。请注意,cookie 文件很快就会过期,如果文件过期,则需要对其进行更新。
4. 感谢 Mooser Lee 的分享。以下代码可以从 cookie 文件中获取令牌数组并将其分配给 $session 变量。这时候如果用invoke-webrequest或者invoke-restmethod用$Websession参数测试,可以发现可以登录网站,但是只能抓取网页的静态内容。
5.为了能够抓取网站的动态内容,继续分析网站,继续使用chrome F12,点击网络标签,只过滤xhr,按F5刷新页面捕获数据包。
6、F5刷新后,会抓取很多内容。一项一项检查,你一定会发现某个回复的内容正是你想要的。如下图: 复制响应内容与网页对比,可以看到是第一页列表中的内容。这将锁定需要抓取的 URL。
7.选择前面的headers选项卡,查看请求方式。可以看出网页采用的是POST方式,需要传参数(如果是get方式会方便很多,具体百度~~)。
8.向下滚动标题选项卡,您可以看到许多参数。
9. 将参数添加到headers数组中进行备份。不是所有参数都必须带,我挑了几个写的,你也可以自己试试....
10.继续下拉查看payload。这部分是body参数。
11、如图,直接复制粘贴,新建一个变量使用。这是比较长的。请注意,您需要在中间添加几个转义字符。
12、最后呈现invoke-webrequest大法,用一行命令完成:
在$r的属性内容中,可以查看动态网页的内容。
先分享这么多....当前脚本中的url只是直接使用了当前会话的临时变量。如果您想编写一个可用的脚本,您需要获取一些构成 url 的必要变量。我正在研究怎么做...