这里我爬的是基于搜索的结果,因为我仅仅用于爬某人的一些视频,这里我没过滤,最后通过文件名过滤即可

放文件里直接跑会报错,复制粘贴执行吧

注:仅做学习使用

关键点如下:

1.首先通过搜索页面获取到 url ,需自己补上 https: 示例如下:

//tv.sohu.com/v/dXMvMzQwOTkxMjgwLzEzNzUzODQxNS5zaHRtbA==.html

2.然后通过对链接后一部分进行 base64 解密获取 vid

base64 -d "dXMvMzQwOTkxMjgwLzEzNzUzODQxNS5zaHRtbA=="

3.两种获取视频链接的方式

有些可以直接通过 vid ,时间辍(毫秒)来直接获取,里边会包含一个完整的 mp4 的链接,如下

https://my.tv.sohu.com/play/videonew.do?vid=134330464&ver=&ssl=1&referer=https%3A%2F%2Ftv.sohu.com%2Fv%2FdXMvMzM4NDQ5NTQzLzEzNDMzMDQ2NC5zaHRtbA%3D%3D.html&t=1605447265619

还有一些通过上边获取到一个不完整的链接,需要多进行一步来获取 mp4 链接,将不完整的链接替换如下的 new 参数即会获取到完整的 mp4 链接

https://data.vod.itc.cn/ip?new=/65/20/jcPIqu9qJ8mqB9QqxMpzdP.mp4

我的笔记如下:

function get_url () {
        curl "https://so.tv.sohu.com/mts?wd=%E5%88%9D%E8%A7%81%E7%89%A9%E8%AF%AD&c=0&v=0&length=1&limit=0&site=0&o=0&p=$1&st=0&suged=" -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: https://so.tv.sohu.com/mts?wd=%E5%88%9D%E8%A7%81%E7%89%A9%E8%AF%AD&c=0&v=0&length=2&limit=0&site=0&o=0&st=0&suged=' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Cookie: ch_key=50e48c6168d7b908; pgc_wakeup20201115=1; fuid=16054469953088627148; newpuid=16054469954401436838; beans_freq=1; t=1605448441142; reqtype=pc; gidinf=x099980108ee126d7527a8c7a00045fd5a258092fcba; IPLOC=CN4403; SUV=201115132957DFRI; landingrefer=http%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DnROG7ECcAKzTgudU_VuWhMwvvgk-4c9zmPZMTxsrnHSVRpAJK7dxmGXDwhVkV1pjbxw0xDV5yHsp-Yt4Y4J51TJ-EF8lAltUb9aaaYBPqou%26wd%3D%26eqid%3Dbf85a9da0017fa94000000035fb0bcc8; beans_dmp=%7B%2210191%22%3A1605447101%2C%22admaster%22%3A1605447101%2C%22shunfei%22%3A1605447101%2C%22reachmax%22%3A1605447101%2C%22lingji%22%3A1605447101%2C%22yoyi%22%3A1605447101%2C%22ipinyou%22%3A1605447101%2C%22ipinyou_admaster%22%3A1605447101%2C%22miaozhen%22%3A1605447101%2C%22diantong%22%3A1605447101%2C%22huayang%22%3A1605447101%2C%22precisionS%22%3A1605447101%7D; beans_dmp_done=1; beans_dmp_busi_done=1; sokey=%5B%7B%22key%22%3A%22%E5%88%9D%E8%A7%81%E7%89%A9%E8%AF%AD%22%7D%5D; iwt_uuid=4220f483-11b0-4252-8ed9-14dd61a9cd52; JSESSIONID=C3065D6BBE749F8217C7683B86307493' -H 'Upgrade-Insecure-Requests: 1' -H 'TE: Trailers'|grep -Eo "\/\/.*?=.html"|sed 's/^/https:&/g'|uniq >> test.txt
}

for i in {1..20};do get_url $i;done  # 获取一堆 html 链接写入 test.txt
for i in $(grep -Eo "d[^\.]*" test.txt );do echo $i|base64 -d|grep -Eo "[0-9]{9}?\."|sed 's/\.//g';done >> test2.txt   # 根据 test.txt 获取对应的 vid
paste test.txt test2.txt >> test3.txt  # 合并 test.txt 和 test2.txt,生成同时含有 链接 和 vid 的文件

for url vid in $(cat test3.txt);do (echo $url|sed 's/https://g' && curl "https://my.tv.sohu.com/play/videonew.do?vid=$vid&ver=&ssl=1&referer=$url&t=$(expr $(date +%s) "*" 1000 "+" $(date +"%N") "/" 1000000)" -q|grep -Eo "tvName\"\:\"[^\"]*|su.{0,200}mp4")|sed 's/tvName\"\:\"//g'|sed 's/su\"\:\[\"//g'|sed ':t;N;s/\n/\t/;b t';done|sed 's/ /,/g'|tee url.txt  # 获取视频链接,一部分已经是完整的,另一部分需要再多一个步骤;这里不够准确,可更改替换数字200实现,即可以限制url长度实现精确,需要的自行优化
grep http url.txt >> url_to_mp4.txt  # 把含有完整链接的行写入新文件,此时文件里的视频名还需要转码
grep -v http url.txt >> more_step_to_mp4.txt  # 把不含有完整链接的行写入新文件,此时文件里的视频名还需要转码
for html name url in $(cat url_to_mp4.txt);do echo "$html\t$name\t$url"|sed 's/ /,/g' >> final_url.txt;done  # 把已经有完整链接的进行转码并写入最终的文件,含原 html 链接,视频名,视频链接
for html name url in $(cat more_step_to_mp4.txt );do (echo "$html\t$name" && curl "https://data.vod.itc.cn/ip?new=$url" |grep -oE "http[^\"]*")|tr '\n' '\t' && echo "";done |sed 's/ /,/g' >> final_url.txt  # 多进行一步操作并以相同格式写入文件
for i name url in $(cat final_url.txt );do wget "$url" -O "$name.mp4";done  # 下载,搜狐网速挺好的,不会封你ip

简易 shell 爬搜狐相关推荐

  1. python新闻爬虫教程_python简易爬虫教程--(一)批量获取搜狐新闻

    我们先从简单的抓取文本信息开始,来写我们的第一个爬虫程序,获取搜狐新闻的内容. 我们首先来介绍一下我们需要用到的库. 爬虫程序的步骤,一般可以分为三步: 1.获取网页源码(html源码): 2.从代码 ...

  2. python证券_基于Python爬取搜狐证券股票过程解析

    数据的爬取 我们以上证50的股票为例,首先需要找到一个网站包含这五十只股票的股票代码,例如这里我们使用搜狐证券提供的列表. 可以看到,在这个网站中有上证50的所有股票代码,我们希望爬取的就是这个包含股 ...

  3. 爬取网易,搜狐,凤凰和澎湃网站评论数据,正负面情感分析

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx Scrapy爬虫项目 基于Scrapy框架的Python新闻爬虫,能够爬取网易,搜狐,凤凰和澎 ...

  4. python爬虫搜狐新闻_应用案例2:爬取搜狐体育的新闻信息

    爬虫学习使用指南 Auth: 王海飞 Data:2018-06-25 Email:779598160@qq.com github:https://github.com/coco369/knowledg ...

  5. python爬虫股票上证指数_Python爬虫爬取搜狐证券股票数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT信息教室,作者:M先森看世界 数据的爬取 我们以上证50的股票为例,首先需 ...

  6. 经典面试题-搜狐和讯网Shell面试题

    搜狐&和讯网 问题1:Shell脚本里如何检查一个文件是否存在?如果不存在该如何处理? #!/bin/bashif [ -f file.txt ]; thenecho "文件存在!& ...

  7. Python爬虫——主题爬取搜狐新闻(步骤及代码实现)

    目录 一 .实现思路 二.获取url变化规律 三.爬取新闻名称及其超链接 四.判断与主题的契合度 四.输出结果 五.总代码 一 .实现思路 本次爬取搜狐新闻时政类 获取url--爬取新闻名称及其超链接 ...

  8. 详解爬取搜狐号自媒体的所有文章

    背景 现在有很多自媒体平台,如头条号.搜狐号.大鱼号.百家号等,每个人都可以成为创作者发布自己的作品.如果想把某个作者的文章都下下来,一篇一篇的下载会很麻烦,而用爬虫则会很简单,顺便还能练练手.这里就 ...

  9. Python爬取搜狐车型数据

    主要工具Python+selenium+Excel 因为工作需要想要获得车型参数数据,查找了网络上面的教程和相关的文章都没有达到我想要的效果,所以自己慢慢摸索着写了这些代码,可能有一些代码繁琐且没有必 ...

最新文章

  1. 手工模拟实现 Docker 容器网络!
  2. SAP Fiori Launchpad里加载abap.js的具体代码位置
  3. Multiverse: Revolutionary Backend for Alembic // Multiverse: 下一代Alembic后端
  4. P6477-[NOI Online #2 提高组]子序列问题【线段树】
  5. Yarn的三种资源调度机制
  6. Linux防火墙端口设置和mysql端口开放的navicat整合
  7. 第 1 章 课程概述
  8. Spring Cloud微服务下的权限架构调研
  9. 从Asp.net实现资源全球化和本地化
  10. 全球著名营销专家怎么评价这本书
  11. 中学数字化实验室建设及配置要求
  12. html的表格怎么设置样式,html 静态表格样式的设置
  13. 计算机网络验证性实践
  14. JavaScript 正则表达判断经度纬度是否符合规范。
  15. 微信小程序开发收藏经验(一)
  16. 微软市值一周缩水400亿美元 相当于收购雅虎报价
  17. 常用的json转换jar包
  18. MySQL报错: SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
  19. 读取英里数然后将它转换为公里数并显示结果。1英里约等于1.609公里。 输出结果保留2位小数。
  20. 【独家】华为OD机试 - 英文输入法(C 语言解题)

热门文章

  1. Windows远程桌面出现Error code: 0xc07的解决方案
  2. 成功解决android 网络视频边下载变播放。
  3. 多模态生物特征识别 基于人脸与人耳信息pdf
  4. 【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU
  5. 模型和算法,有什么区别
  6. canvas轨迹运动, 利用向量实现点匀速运动
  7. 综合日语第一册第八课
  8. Spring中循环依赖详解
  9. 重读《拿破仑传》有感
  10. 轻雀协作客户最佳实践之凯叔讲故事