tvmao.bat- #&cls&@cd /d "%~dp0" & powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
- cls
- #whr
- $whr = New-Object -ComObject 'WinHttp.WinHttpRequest.5.1'
-
- #设置请求头
- function Set-RequestHeader($whr){
- $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');
- $whr.SetRequestHeader('Host','www.tvmao.com')
- $whr.SetRequestHeader('Connection','Keep-Alive')
- }
-
- #函数 根据url链接获取所有分集的链接
- function Get-PartUrlList($url){
- if($url -eq $null){
- return $null
- }
- $whr.Open('GET',$url,$false)
- Set-RequestHeader -whr $whr
- $whr.Send()
- $txt = $whr.ResponseText
- $whr.Abort()
- $title = ''
- $pattern = '<strong class="font24">(.*?)</strong>'
- if($txt -match $pattern){
- $title = $Matches[1]
- }
- $pattern = '<div class="epipage.*?>.*?</div>'
- if($txt -match $pattern){
- $pattern = '(?s)href="(.*?)"'
- return &{
- $title
- [regex]::Matches($Matches[0],$pattern) | foreach {
- 'https://www.tvmao.com' + $_.Groups[1].Value
- }
- }
- }
- return $null
- }
-
- #函数 根据分集url获取分集剧情
- function Get-PartInfo($part_url){
- if($part_url -match '-(\d+)$'){
- Write-Host ('解析第{0}集 {1}' -f $Matches[1],$part_url)
- '第{0}集' -f $Matches[1]
- } else {
- return;
- }
- $whr.Open('GET',$part_url,$false)
- Set-RequestHeader -whr $whr
- $whr.Send()
- $txt = $whr.ResponseText
- $whr.Abort()
- $pattern = '(?s)<article class=".*?epi_c">.*?</article>'
- if($txt -match $pattern){
- $Matches[0] -replace '(?s)<.*?>','' -replace '(?s)\(.*?转载许可\).*$','' -replace '^\s+|\s+$',''
- }
- }
-
- #--------------------------------------------------------------------
- #变量设置
- $list_file = 'd.txt' #列表文件
- $out_file = 'tvmao_info.txt' #输出信息文件
- #--------------------------------------------------------------------
-
- Get-Content $list_file | foreach {
- $part_list = Get-PartUrlList -url ($_ + '/episode')
- Write-Host $part_list[0]
- if($part_list.Count -gt 1){
- $data = &{
- 'TTT' + $part_list[0]
- for($i = 1;$i -lt $part_list.Count; $i++){
- Get-PartInfo -part_url $part_list[$i]
- }
- }
- Out-File -InputObject $data $out_file -Append
- }
- Write-Host '----------------'
- }
复制代码
|