[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【完结】求网页信息抓取+150元

本帖最后由 lxh623 于 2021-10-10 17:40 编辑

两个网站。各150元。
第一,https://www.km.com/tv/---.html
全部电视剧。名称前面加TTT。
图片地址
【概览】(添加文字)
剧情介绍之前的内容。包括导演、得分等七八项。剧情最后要展开。这里的演员表不要,因为下面有。
【分集剧情】
【演员表】每一个演员人名加ZZZ。
【人物介绍】
【幕后信息】左右栏目,麻烦转行。
第二、https://www.tvsou.com/class/dianshiju/
全部电视剧。名称前面加TTT。
图片地址
【概览】(添加文字)
这里的演员表不要,因为下面有。
【分集剧情】
剧情介绍+分集剧情
【演员表】每一个演员人名加ZZZ。

也可以我事先得到所有电视剧链接。按照文本去打开。

不知道会不会拦截,但愿没有。
我不会用于建网。

谢谢!


已成功获取

TOP

本帖最后由 a20150604 于 2021-9-30 12:48 编辑

以下为单页获取演示, 可让代码自动逐页全部获取
演示为此2页
https://www.km.com/tv/-----13.html
https://www.km.com/tv/-----14.html

TOP

要采集的信息那么多,才100元,不值得写
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 slimay 于 2021-9-30 14:51 编辑

请到 http://cmd1152.ys168.com/  文件区   下载 "lxh623已经提取好的资料.zip"  
附赠 提取工具, 赠三种数据格式 ,txt, html, excel表格格式. 均是提取好的全部数据, 直接使用.无需加工
  1. ..   http://cmd1152.ys168.com/  文件区   下载 "lxh623已经提取好的资料.zip"
  2. 七猫影视-提取.html
  3. 七猫影视-提取.xls
  4. 定制说明.txt
  5. 搜视网-提取.html
  6. 搜视网-提取.xls
  7. 文本格式
  8. 新站到-提取.html
  9. 新站到-提取.xls
  10. 附赠提取工具
复制代码
提取脚本,网址随便改, 理论上可提取任何网站
  1. @echo off
  2. REM 设置提取网址
  3. set "url=https://www.tvsou.com/class/dianshiju/--"
  4. REM 设置网页数量
  5. set "num=100"
  6. REM 开始提起网页
  7. for /l %%a in (1,1,%num%) do (
  8. echo;正在下载 第 %%a 个页面
  9. curl  "%url%--%%a"  > home\%%a.txt
  10. echo;正在转码 第 %%a 个页面
  11. wincp    home\%%a.txt  -o ansi\N_%%a.txt -f 65001 -t 936
  12. )
  13. REM 直接输出提取后的信息
  14. (
  15. for /l %%a in (1,1,%num%) do (
  16. zq    ansi\N_%%a.txt  
  17. )
  18. ) > out.html
  19. pause
复制代码
1

评分人数

TOP

回复 3# a20150604


    我擦,你真牛b

TOP

5楼只有标题,而且放弃了。
欢迎大家继续。

TOP

  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 Get-PageList($page){
  7.     $url = 'https://www.km.com/tv/-----{0}.html' -f $page
  8.     $whr.Open('GET',$url,$false)
  9.     $whr.Send()
  10.     if($whr.Status -eq 200){
  11.         $txt = $whr.ResponseText
  12.         $whr.Abort()
  13.         $pattern = '(?<=<div class="filter_res_image scale_image_container">\s+<a href=").*?(?=")'
  14.         [regex]::Matches($txt,$pattern) | foreach {
  15.             if($_.Value -match '/(\d+).html$'){
  16.                 $Matches[1]
  17.             }
  18.         }
  19.     }
  20. }
  21. #函数 获取主要信息
  22. function Get-MainInfo($key){
  23.     #主要信息界面
  24.     $url = 'https://www.km.com/tv/{0}.html' -f $key
  25.     $whr.Open('GET',$url,$false)
  26.     $whr.Send()
  27.     $txt = $whr.ResponseText
  28.     $whr.Abort()
  29.     #标题
  30.     $pattern = '(?s)<div class="inside-title.*?>.*?>(.*?)<'
  31.     if($txt -match $pattern){
  32.         '名称: TTT' + $Matches[1]
  33.         Write-Host ('解析电视剧: ' + $Matches[1])
  34.     }
  35.     #图片地址
  36.     $pattern = '(?s)<div class="video_poster.*?">.*?<img src="(.*?)"'
  37.     if($txt -match $pattern){
  38.         '图片地址: ''https:' + $Matches[1]
  39.     }
  40.     #概览
  41.     "`r`n【概览】"
  42.     $pattern = '(?s)mr20">(.*?)<a class="unfold"'
  43.     if($txt -match $pattern){
  44.         $t = $Matches[1] -replace '(?s)<script>.*?</script>','' -replace '<.*?>','' -replace '\s{2,}',''
  45.         $t -replace '(导演:)|(主演:)|(地区/类型:)|(剧情集数:)|(播出时间:)|(在线观看网站:)|(别名:)|(片长:)',("`r`n" + '$0')
  46.     }
  47.     #分数
  48.     $pattern = '(?s)<p class="score_num.*?>.*?>(.*?)<'
  49.     if($txt -match $pattern){
  50.         '综合评分: ' + $Matches[1]
  51.     }
  52.     #幕后信息
  53.     "`r`n【幕后信息】"
  54.     $pattern = '(?s)幕后信息</div>(.*?)<a class="intro_fold'
  55.     if($txt -match $pattern){
  56.         $Matches[1] -replace '<.*?>','' -replace '\s{2,}','' -replace '(编剧:)|(制片人:)|(TV首播时间:)|(在线播放平台:)|(出品公司:)|《',("`r`n" + '$0')
  57.     }
  58.     #演员表
  59.    "`r`n【演员表】"
  60.     $url = 'https://www.km.com/tv/yanyuan/{0}.html' -f $key
  61.     $whr.Open('GET',$url,$false)
  62.     $whr.Send()
  63.     $txt = $whr.ResponseText
  64.     $whr.Abort()
  65.     $pattern = '(?s)<div class="actor-list-detail same_col">.*?<div class="actor-works same_col_bottom">'
  66.     [regex]::Matches($txt,$pattern) | foreach {
  67.         'ZZZ' + ($_.Value -replace '<.*?>','' -replace '\s{2,}','' -replace '饰演'," 饰演 ")
  68.     }
  69.     #人物介绍
  70. "`r`n【人物介绍】"
  71.     $url = 'https://www.km.com/tv/role/{0}.html' -f $key
  72.     $whr.Open('GET',$url,$false)
  73.     $whr.Send()
  74.     $txt = $whr.ResponseText
  75.     $whr.Abort()
  76.     $pattern = '(?s)<div class="role-name">.*?<div class="role-intro-js">'
  77.     [regex]::Matches($txt,$pattern) | foreach {
  78.         $_.Value -replace '<.*?>','' -replace '\s{2,}','' -replace '演员',' 演员' -replace '-->简介:',"-->简介:`r`n`t"
  79.     }
  80. }
  81. #函数 一页数据保存为一个文件
  82. function Save-PageInfo($page){
  83.     #如果本页已解析,则跳过
  84.     $f = 'page_{0:000}.txt' -f $page
  85.     if([System.IO.File]::Exists($f)){
  86.         '第{0}页已解析,跳过...' -f $page
  87.         return;
  88.     }
  89.     #开始解析
  90.     &{
  91.         Get-PageList -page 1 | foreach {
  92.             Get-MainInfo -key $_
  93.             '----------------------------------'
  94.         }
  95.     } | Out-File $f
  96. }
  97. #解析并保存第一页数据
  98. Save-PageInfo -page 1
复制代码
1

评分人数

TOP

本帖最后由 lxh623 于 2021-10-4 16:01 编辑

回复 8# went
如果我把所有电视剧网址写入文本a,再一个一个获取,可能更好。
【概览】里面的“主演”不要了,因为后面有演员。
【分集剧情】包括剧情介绍(展开)和每一集剧情,暂时没有抓取。
谢谢!

有些演员那里没有转行。
比如,ZZZ车梓茗 饰演 :齐贵田玲 饰演 牛兰花张宛庭 饰演 孙桂琴闫锐 饰演 马志刚王超 饰演 李天洋

TOP

回复 9# lxh623


    地址你保存的这种格式?
  1. https://www.km.com/tv/98324.html
  2. https://www.km.com/tv/96830.html
  3. https://www.km.com/tv/56848.html
  4. https://www.km.com/tv/97869.html
  5. https://www.km.com/tv/94010.html
  6. https://www.km.com/tv/97924.html
  7. https://www.km.com/tv/96880.html
  8. https://www.km.com/tv/99023.html
  9. https://www.km.com/tv/58624.html
  10. https://www.km.com/tv/95650.html
  11. https://www.km.com/tv/96842.html
  12. https://www.km.com/tv/97604.html
  13. https://www.km.com/tv/94180.html
  14. https://www.km.com/tv/99840.html
  15. https://www.km.com/tv/93130.html
  16. https://www.km.com/tv/57571.html
  17. https://www.km.com/tv/98348.html
  18. https://www.km.com/tv/97183.html
  19. https://www.km.com/tv/99770.html
  20. https://www.km.com/tv/61631.html
  21. https://www.km.com/tv/97788.html
  22. https://www.km.com/tv/95876.html
  23. https://www.km.com/tv/97131.html
  24. https://www.km.com/tv/58078.html
复制代码
1

评分人数

TOP

本帖最后由 went 于 2021-10-4 18:34 编辑

url保存为楼上格式,a.txt
#变量设置
$cur_file = 'pass.txt' #保存已读取的个数
$url_file = 'a.txt'    #URL列表文件
$out_file = 'info.txt' #输出信息文件
  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 Get-MainInfo($key){
  7.     #主要信息界面
  8.     $url = 'https://www.km.com/tv/{0}.html' -f $key
  9.     $whr.Open('GET',$url,$false)
  10.     $whr.Send()
  11.     $txt = $whr.ResponseText
  12.     $whr.Abort()
  13.     #标题
  14.     $pattern = '(?s)<div class="inside-title.*?>.*?>(.*?)<'
  15.     if($txt -match $pattern){
  16.         '名称: TTT' + $Matches[1]
  17.         Write-Host ('解析电视剧: ' + $Matches[1])
  18.     }
  19.     #图片地址
  20.     $pattern = '(?s)<div class="video_poster.*?">.*?<img src="(.*?)"'
  21.     if($txt -match $pattern){
  22.         '图片地址: https:' + $Matches[1]
  23.     }
  24.     #概览
  25.     "`r`n【概览】"
  26.     $pattern = '(?s)mr20">(.*?)<a class="unfold"'
  27.     if($txt -match $pattern){
  28.         $t = $Matches[1] -replace '(?s)<script>.*?</script>','' -replace '<.*?>','' -replace '\s{2,}',''
  29.         $t -replace '(导演:)|(主演:)|(地区/类型:)|(剧情集数:)|(播出时间:)|(在线观看网站:)|(别名:)|(片长:)',("`r`n" + '$0') -replace "主演:.*?`r`n",''
  30.     }
  31.     #分数
  32.     $pattern = '(?s)<p class="score_num.*?>.*?>(.*?)<'
  33.     if($txt -match $pattern){
  34.         '综合评分: ' + $Matches[1]
  35.     }
  36.     #获取剧情介绍内容和总集数
  37.     $plot_main = ''
  38.     $pattern = '剧情介绍:.*?>(.*?)<'
  39.     if($txt -match $pattern){
  40.         $plot_main = $Matches[1]
  41.     }
  42.     $pattern = '>\(全部&nbsp;(\d+)<'
  43.     if($txt -match $pattern){
  44.         $part = $Matches[1]
  45.     }
  46.    
  47.     #幕后信息
  48.     "`r`n【幕后信息】"
  49.     $pattern = '(?s)幕后信息</div>(.*?)<a class="intro_fold'
  50.     if($txt -match $pattern){
  51.         $Matches[1] -replace '<.*?>','' -replace '\s{2,}','' -replace '(编剧:)|(制片人:)|(TV首播时间:)|(在线播放平台:)|(出品公司:)|《',("`r`n" + '$0')
  52.     }
  53.     #演员表
  54.    "`r`n【演员表】"
  55.     $url = 'https://www.km.com/tv/yanyuan/{0}.html' -f $key
  56.     $whr.Open('GET',$url,$false)
  57.     $whr.Send()
  58.     $txt = $whr.ResponseText
  59.     $whr.Abort()
  60.     $pattern = '(?s)<div class="actor-list-detail same_col">.*?<div class="actor-list-detail same_col">'
  61.     [regex]::Matches($txt,$pattern) | foreach {
  62.         if($_.Value.Contains('<em>饰</em><em>演</em>')){
  63.             'ZZZ' + $_.Value -replace '<.*?>|\s{2,}',''-replace '饰演'," 饰演 " -replace '最近作品:.*$',''
  64.         }
  65.     }
  66.     #人物介绍
  67.    "`r`n【人物介绍】"
  68.     $url = 'https://www.km.com/tv/role/{0}.html' -f $key
  69.     $whr.Open('GET',$url,$false)
  70.     $whr.Send()
  71.     $txt = $whr.ResponseText
  72.     $whr.Abort()
  73.     $pattern = '(?s)<div class="role-name">.*?<div class="role-intro-js">'
  74.     [regex]::Matches($txt,$pattern) | foreach {
  75.         $_.Value -replace '<.*?>','' -replace '\s{2,}','' -replace '演员',' 演员' -replace '-->简介:',"-->简介:`r`n`t"
  76.     }
  77.     #解析分集剧情
  78.     Get-PartInfo -key $key -title $plot_main -max $part
  79.     '-----------------------------------------------------------------------------'
  80. }
  81. #函数 解析分集剧情
  82. function Get-PartInfo($key,$title,$max){
  83. "`r`n【分集剧情】"
  84.     "`t剧情介绍`n`t`t" + $title
  85.     for($i = 1; $i -le $max; $i++){
  86.         "`t第{0}集`t`t" -f $i
  87.         $url = 'https://www.km.com/tv/{0}/2_{1}.html' -f $key,$i
  88.         #读取网页内容
  89.         $whr.Open('GET',$url,$false)
  90.         $whr.Send()
  91.         $txt = $whr.ResponseText
  92.         $whr.Abort()
  93.         #解析剧情内容
  94.         $pattern = '(?s)<div class="article-content">.*?</div>'
  95.         if($txt -match $pattern){
  96.             "`t`t" + ($Matches[0] -replace '<.*?>','' -replace '\s{2,}',' ').Trim()
  97.         }
  98.     }
  99. }
  100. #变量设置
  101. $cur_file = 'pass.txt' #保存已读取的个数
  102. $url_file = 'a.txt'    #URL列表文件
  103. $out_file = 'info.txt' #输出信息文件
  104. #读取已经解析的个数
  105. $cur = 0
  106. if([System.IO.File]::Exists($cur_file)){
  107.     $line = Get-Content $cur_file | Select-Object -First 1
  108.     if($line -match '\d+'){
  109.         $cur = [int]$line
  110.     }
  111. }
  112.         Write-Host ('上次解析个数: {0}' -f $cur)
  113. #读取url并解析内容
  114. Get-Content $url_file | Select-Object -Skip $cur | foreach {
  115.     if($_ -match 'https://www.km.com/tv/(\d+).html'){
  116.         #解析内容
  117.         Get-MainInfo -key $Matches[1] | Out-File $out_file -Append
  118.         #保存当前进度
  119.         ++$cur
  120.         Out-File -InputObject $cur -FilePath $cur_file
  121.     }
  122. }
复制代码
1

评分人数

TOP

本帖最后由 lxh623 于 2021-10-4 18:32 编辑

回复 11# went
麻烦增加【人物介绍】几个字。
麻烦查收。

TOP

回复 12# lxh623


    加上了

TOP

麻烦做一下补充批处理。50元。
文本b,写入名字,一行一个。到https://www.tvmao.com/搜索,得到链接,打开,获取分集剧情。
格式
TTT
第1集
........
第2集
.......


谢谢!

TOP

本帖最后由 went 于 2021-10-5 15:54 编辑

回复 14# lxh623


    b.txt保存电视剧名称,ansi编码
  1. 夺金
  2. 光芒
  3. 一生一世
  4. 叛逆者
  5. 火红年华
  6. 国子监来了个女弟子
  7. 君九龄
  8. 周生如故
  9. 乔家的儿女
  10. 扫黑风暴
  11. 程序员那么可爱
  12. 功勋
  13. 夺金战
  14. 当爱情遇上科学家
  15. 双刺
  16. 燃烧大地
  17. 启航:当风起时
  18. 你好检察官
  19. 我哥我嫂
  20. 理想之城
复制代码
test.bat脚本文件,ansi编码
  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-Url($kw){
  13.     $url = 'https://www.tvmao.com/servlet/queryobject?type=all&term=' + [System.Net.WebUtility]::UrlEncode($kw)
  14.     $whr.Open('GET',$url,$false)
  15.     Set-RequestHeader -whr $whr
  16.     $whr.Send()
  17.     $txt = $whr.ResponseText
  18.     $whr.Abort()
  19.     if($txt -match '"url":"(.+?)"'){
  20.         return 'https://www.tvmao.com' + $Matches[1] + '/episode'
  21.     }
  22.     return $null
  23. }
  24. #函数 根据url链接获取所有分集的链接
  25. function Get-PartUrlList($url){
  26.     if($url -eq $null){
  27.         return $null
  28.     }
  29.     $whr.Open('GET',$url,$false)
  30.     Set-RequestHeader -whr $whr
  31.     $whr.Send()
  32.     $txt = $whr.ResponseText
  33.     $whr.Abort()
  34.     $pattern = '<div class="epipage.*?>.*?</div>'
  35.     if($txt -match $pattern){
  36.         $pattern = '(?s)href="(.*?)"'
  37.         return &{
  38.             [regex]::Matches($Matches[0],$pattern) | foreach {
  39.                 'https://www.tvmao.com' + $_.Groups[1].Value
  40.             }
  41.         }
  42.     }
  43.     return $null
  44. }
  45. #函数 根据分集url获取分集剧情
  46. function Get-PartInfo($part_url){
  47.     if($part_url -match '-(\d+)$'){
  48.         Write-Host ('解析第{0}集 {1}' -f $Matches[1],$part_url)
  49.         '第{0}集' -f $Matches[1]
  50.     } else {
  51. return;
  52. }
  53.     $whr.Open('GET',$part_url,$false)
  54.     Set-RequestHeader -whr $whr
  55.     $whr.Send()
  56.     $txt = $whr.ResponseText
  57.     $whr.Abort()
  58.     $pattern = '(?s)<article class=".*?epi_c">.*?</article>'
  59.     if($txt -match $pattern){
  60.         $Matches[0] -replace '(?s)<.*?>','' -replace '(?s)\(.*?转载许可\).*$',''
  61.     }
  62. }
  63. #变量设置
  64. $cur_file = 'pass.txt' #保存已读取的个数
  65. $list_file = 'b.txt'   #电视剧名称列表文件
  66. $out_file = 'info.txt' #输出信息文件
  67. #读取已经解析的个数
  68. $cur = 0
  69. if([System.IO.File]::Exists($cur_file)){
  70.     $line = Get-Content $cur_file | Select-Object -First 1
  71.     if($line -match '\d+'){
  72.         $cur = [int]$line
  73.     }
  74. }
  75. Write-Host ('上次解析个数: {0}' -f $cur)
  76. #读取电视剧名称并解析内容
  77. Get-Content $list_file | Select-Object -Skip $cur | foreach {
  78.     $url = Get-Url -kw $_.Trim()
  79.     if($url -ne $null){
  80. Write-Host ('正在解析 {0} {1}' -f $_,$url)
  81. Write-Host '---'
  82.         $info = &{
  83.             '名称: {0}' -f $_.Trim()
  84.             Get-PartUrlList -url $url | foreach {
  85.                 Get-PartInfo -part_url $_
  86.             }
  87. '--------------------------------------------------'
  88.         }
  89.         Out-File -FilePath $out_file -InputObject $info -Append
  90.         Write-Host '--------------------------------------------------'
  91.     }
  92.     ++$cur
  93.     Out-File -FilePath $cur_file -InputObject $cur
  94. }
复制代码
1

评分人数

TOP

返回列表