[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
tvzn.bat
  1. #&cls&@cd /d "%~dp0" & powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
  2. cls
  3. #whr
  4. $whr = New-Object -ComObject 'WinHttp.WinHttpRequest.5.1'
  5. #变量设置
  6. $list_file = 'c.txt'   #电视剧名称列表文件
  7. $out_file = 'info.txt' #输出信息文件
  8. #函数 获取所有分集链接
  9. function Get-PartList($url) {
  10.     $url += 'juqingjieshao.html'
  11.     $whr.Open('GET',$url,$false)
  12.     $whr.Send()
  13.     $txt = $whr.ResponseText
  14.     $whr.Abort()
  15.     $title = ''
  16.     if($txt -match '(?s)<title>(.*?)</title>'){
  17.         $title = $Matches[1] -replace '剧情介绍.*$',''
  18.     }
  19.     return &{
  20.         $title
  21.         [regex]::Matches($txt,'<a class="link" href="(.*?)">(.*?)</a>') | Sort-Object {[int]$_.Groups[2].Value} | foreach {
  22.             $_.Groups[2].Value + '|' + 'https://www.tvzn.com' + $_.Groups[1].Value
  23.         }
  24.     }
  25. }
  26. #函数 根据分集链接获取剧情内容
  27. function Get-PartInfo($part_list){
  28.     #标题
  29.     $title = $part_list[0]
  30.     Write-Host $title
  31.     'TTT' + $title
  32.     #分集
  33.     if($part_list.Count -gt 1){
  34.         for($i = 1; $i -lt $part_list.Count; $i++){
  35.             $arr = $part_list[$i] -split '\|'
  36.             Write-Host ('    第{0}集 {1}' -f $arr[0],$arr[1])
  37.             #---------------------------------
  38.             $url = $arr[1]
  39.             $whr.Open('GET',$url,$false)
  40.             $whr.Send()
  41.             $txt = $whr.ResponseText
  42.             $whr.Abort()
  43.             if($txt -match '(?s)<div class="tn-detail-text".*?</p>'){
  44.                 '第{0}集' -f $arr[0]
  45.                 $Matches[0] -replace '<.*?>|&nbsp;|\s+',''
  46.             }
  47.         }
  48.     }
  49. }
  50. #读取文本内容并解析
  51. Get-Content $list_file | foreach {
  52.     $part_list = Get-PartList -url $_
  53.     $data = Get-PartInfo -part_list $part_list
  54.     Out-File -InputObject $data $out_file -Append
  55. }
复制代码
1

评分人数

TOP

tvmao.bat
  1. #&cls&@cd /d "%~dp0" & powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
  2. cls
  3. #whr
  4. $whr = New-Object -ComObject 'WinHttp.WinHttpRequest.5.1'
  5. #设置请求头
  6. function Set-RequestHeader($whr){
  7.     $whr.SetRequestHeader('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38');
  8.     $whr.SetRequestHeader('Host','www.tvmao.com')
  9.     $whr.SetRequestHeader('Connection','Keep-Alive')
  10. }
  11. #函数 根据url链接获取所有分集的链接
  12. function Get-PartUrlList($url){
  13.     if($url -eq $null){
  14.         return $null
  15.     }
  16.     $whr.Open('GET',$url,$false)
  17.     Set-RequestHeader -whr $whr
  18.     $whr.Send()
  19.     $txt = $whr.ResponseText
  20.     $whr.Abort()
  21.     $title = ''
  22.     $pattern = '<strong class="font24">(.*?)</strong>'
  23.     if($txt -match $pattern){
  24.         $title = $Matches[1]
  25.     }
  26.     $pattern = '<div class="epipage.*?>.*?</div>'
  27.     if($txt -match $pattern){
  28.         $pattern = '(?s)href="(.*?)"'
  29.         return &{
  30.             $title
  31.             [regex]::Matches($Matches[0],$pattern) | foreach {
  32.                 'https://www.tvmao.com' + $_.Groups[1].Value
  33.             }
  34.         }
  35.     }
  36.     return $null
  37. }
  38. #函数 根据分集url获取分集剧情
  39. function Get-PartInfo($part_url){
  40.     if($part_url -match '-(\d+)$'){
  41.         Write-Host ('解析第{0}集 {1}' -f $Matches[1],$part_url)
  42.         '第{0}集' -f $Matches[1]
  43.     } else {
  44. return;
  45. }
  46.     $whr.Open('GET',$part_url,$false)
  47.     Set-RequestHeader -whr $whr
  48.     $whr.Send()
  49.     $txt = $whr.ResponseText
  50.     $whr.Abort()
  51.     $pattern = '(?s)<article class=".*?epi_c">.*?</article>'
  52.     if($txt -match $pattern){
  53.         $Matches[0] -replace '(?s)<.*?>','' -replace '(?s)\(.*?转载许可\).*$','' -replace '^\s+|\s+$',''
  54.     }
  55. }
  56. #--------------------------------------------------------------------
  57. #变量设置
  58. $list_file = 'd.txt'         #列表文件
  59. $out_file = 'tvmao_info.txt' #输出信息文件
  60. #--------------------------------------------------------------------
  61. Get-Content $list_file | foreach {
  62.     $part_list = Get-PartUrlList -url ($_ + '/episode')
  63.     Write-Host $part_list[0]
  64.     if($part_list.Count -gt 1){
  65.         $data = &{
  66.             'TTT' + $part_list[0]
  67.             for($i = 1;$i -lt $part_list.Count; $i++){
  68.                 Get-PartInfo -part_url $part_list[$i]
  69.             }
  70.         }
  71.         Out-File -InputObject $data $out_file -Append
  72.     }
  73.     Write-Host '----------------'
  74. }
复制代码
1

评分人数

TOP

返回列表