Re: [问题] 在学习程式语言,如何做到有效率的学习

楼主: vi000246 (Vi)   2018-01-03 00:33:33
讲一下我写爬虫的思路好了
第一步是分析网页 用chrome的F12
有个NetWork页签
手动执行网页 看送出去的表头长怎样 Response是什么
我推荐用fiddler这软件取代F12
它有个composer功能 把你发送的request复制下来贴到这里
能直接发送同样的request 你可以用这个功能研究是哪个header会影响response
做完第一步 你可以把整个流程写下来 列出每个request
登入->进到影片列表->取得影片连结->换页
p.s. 如果登入有验证码的话 这网站你可以先跳过了
这该死的图要学很多东西才绕得过去
通常会在取得影片连结这边卡住
这边就只能看经验了 有的直接抓mp4的连结
有的要用一连串的request才能取得真实连结
有的用swf的player拨放 还要反组译swf看他怎么request的
这是我用来抓vimeo影片的程式码 vimeo把影片连结藏在iframe里
https://goo.gl/VSVjFb
第二步是清理数据
成功取得html后 就要想辨法拿到目标资料
我以前是用正规表达式硬干
但现在有很多方便的东西 像beautifulsoup 或是lxml
像这里第77行开始 就是用xpath抓的
https://goo.gl/G52XKH
取到影片连结后就简单了 取个不重复的档名存到硬盘就好
列一下你会用到的关键字
html、javascript(选配 有些网站会用js防爬虫 需要分析js程式码)、
正规表达式、xpath(这东东是类似jquery选择器的东西)
python的requests、beautifulsoup函式库
当然你也可以直接学selenium 就不需要上面繁琐的分析request流程了
但是想要爬难一点的网站 基本功还是很重要的
selenium把一些很难克服的反爬虫机制 ex. csrf token、用Ajax写的单页式网站
cookie等等 很简单就绕过了
当然想速成的话用selenium是最快的
你可以参考一下
作者: Yshuan (倚絃)   2018-01-03 01:18:00
推这篇 如果练习目标知名的话 github可以对解答
作者: f496328mm (为什么会流泪)   2018-01-03 07:35:00
推selenium,可以说是万解,不过缺点是速度比较慢
作者: jamesxxx1997 (黄~)   2018-01-03 21:22:00
膑瞻j大的教学,我是用selenium来写抓影片的code因为网站有不少javascriptQQ,不过原本想用selenium加上request,因为单独selenium要有点击下载的按钮然后就卡住了...,我会再重新把我的问题缩小、梳理
楼主: vi000246 (Vi)   2018-01-03 21:35:00
你要找出影片的实体路径 影片拨放跟下载影片的原理是一样的 网站会对影片的路径发送request 回传串流 差别是拨放器会解读串流 播放影片 下载下来的串流就是影片档案
作者: jamesxxx1997 (黄~)   2018-01-03 21:54:00
n的,我再以"播放器 python"为关键字找一下教学~
楼主: vi000246 (Vi)   2018-01-03 23:07:00
你可以先找一下其他影片下载器的爬虫 看别人是怎么下载的 这跟播放器关系不大 可以先拿youtube download当关键字

Links booklink

Contact Us: admin [ a t ] ucptt.com