首页 > 代码库 > 有趣的反爬虫
有趣的反爬虫
今天在爬取一个视频网站的时候
找到了他的视频地址,准备开工。
网页地址:http://m.kankanwu.com/Arts/xianchudangdao2017/player-0-0.html
网页iframe:https://newplayer.dongyaodx.com/player1.php?id=47993_0_0
iframe里面的视频地址:http://114.80.186.146/1583642e1b99851da18300f3f2c9ce41.m3u8?type=mpptv.wp&k=4d1b7fdb9afe5b0e97bd6c33d91447af-2506-1500968177%26segment%3D49520731_4952ed51_1500953777%26bppcataid%3D26&vvid=f169053e-5d06-4eae-8dc6-c22067b62e03
----最外层网页---
视频地址在iframe里面 发现iframe是不能单独打开的 是因为header头Referer有判断,如果直接打开就是显示 “pir”
------iframe------
不过这都不是什么问题,scrapy 嵌套这些scrapy.http的是自动加上Referer的 所以在scrapy里面是直接有返回的
视频地址是通过js渲染出来的,有个接口返回视频地址
正则在页面里面匹配到参数(服务器端渲染)之后接开搞了,搞了几次发现都报错
network里面看他传了这八个值,
sign参数为后台php渲染,每次都会更改
dao这个参数是在一个隐藏的input上,拼接参数的时候是document.getElementById(‘e2‘)获取的
最后我是在页面上直接把所有的值复制出来,和他本是网站请求的地址比对 发现dao参数不对
这个函数的传参数也是后台渲染的,随机的一段js代码 去改变e2元素的值
也就是说后台返回了一段随机 js代码 给到前台执行,结果在返回到后台,才能成功的请求到正确的返回
以后有空再看这个js吧,心累
end
有趣的反爬虫