标题: [原创代码] 抓取btrenren电影网站上的torrent下载链接需要给invoke-restmethod传递post参数的构造 [打印本页]
作者: gflrlm 时间: 2018-3-17 21:49 标题: 抓取btrenren电影网站上的torrent下载链接需要给invoke-restmethod传递post参数的构造
本帖最后由 gflrlm 于 2018-3-17 22:09 编辑
比如访问 [url= http://www.btrenren.com/index.ph ... l?id=17072&zz=1]
模拟点击“点击下载”按钮 ,需要进行如下操作:
####################################################################################
### 下面是上面网页的源代码 ,关键内容如下,需要构$body 数据给 -post 参数
### 实际上,不需要再访问上面的网址, 只需要根据 id 和zz 构造出body即可下载了。
### view-source: http://www.btrenren.com/index.ph ... l?id=17072&zz=1
### # <form action="" method="post">
### # <input type="hidden" value="17072" name="id">
### # <input type="hidden" value="zz1" name="zz">
### # <input name="imageField" type="image" width="140" height="55" src="http://www.btrenren.com/Public/Home/images/download.gif" style="cursor:pointer;">
### # </form>
###
####################################################################################-
- $body = @{
- "zz"="zz1" ### <input type="hidden" value="download"
- "id"="17072" ### <input type="hidden" value="17072" #output torrent file
- "id"="23681" ### <input type="hidden" value="23681" #redirect to a new web html
-
- }
- $torrent_filename="xxxxx.torrent"
- 注意下面的uri 网址 http://www.btrenren.com/index.php/Dow/index.html ,取自源代码里面皿form action = ""
- invoke-restmethod -uri http://www.btrenren.com/index.php/Dow/index.html -Body $body -Method Post -OutFile $torrent_filename
-
复制代码
有时候对torrent文件进行命名的时候,我们需要根据抓到的网页里面的title进行命名,比如 $torrent_filename= "[BT下载][狼吻夜惊魂][HD-MP4/1.8GB][中文字幕][1080P]"
<span><a href="http://www.btbtt88.com/thread-index-fid-1-tid-14215.htm"><title ="[BT下载][狼吻夜惊魂][HD-MP4/1.8GB][中文字幕][1080P]"</a></span>
此时会提示错误: -outfile 通配符 路径不存在 。 这个时候需要将里面的特殊字符 [ ] : ? 等替换掉 , 使用下面的函数:-
- function escape_wildcards_to____string([string] $s) {
- $s1 = $s -replace '\[','___'
- $result = $s1 -replace '\]','___'
- $result = $result -replace '\*','___'
- $result = $result -replace '\?','___'
- $result = $result -replace '\/','___'
- $result = $result -replace '\\','___'
- $result = $result -replace '\:','___'
- return $result
- }
-
-
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |