Python爬取电影天堂指定电视剧或者电影

1.分析搜索请求

一位高人曾经说过,想爬取数据,要先分析网站

今天我们爬取电影天堂,有好看的美剧我在上面都能找到,算是很全了。

这个网站的广告出奇的多,用过都知道,点一下搜索就会弹出个窗口,伴随着滑稽的音乐,贪玩蓝月?

通过python,我们可以避免广告,直接拿到我们要的东西

我用的是火狐浏览器,按F12打开开发者工具,选择网络

按照正常的操作顺序,其实python就是在模拟人进行一些网页操作,我们只不过通过python解放自己的双手

在搜索框输入“傲骨贤妻”,当然你输入其他的电视剧名称也可以,查看开发者工具

聪明的你肯定一下就看出来了,对,就是第一个请求,点开

查看参数,keyword中文意思是关键字,我们可以得知,“傲骨贤妻”被encode成了这种看不懂的东西 ,参数kwtype和searchtype感觉没什么用,具体我也不知道干啥的,我们模拟请求的时候,把它俩加上,防止出问题

好了,我们现在可以打开开发工具开始玩耍了,我用的是IntelliJ IDEA,我安装了python插件,和pycharm不会差太多,挺好用的。因为我平时用Java开发比较多,我就懒得再下载其他开发工具。当然你用记事本

我也不反对。我先建立一个film.py,用来放置电视剧名。这是一个好习惯,有些时候安全性比较高的数据专门放在一个文件里,进行加密,或者github忽略不提交,可以避免不必要的麻烦

# coding=utf-8
filmName = '傲骨贤妻'

2.用python模拟搜索请求

建立_init_.py

导入所需要的包 urlib2,re,film,注释已经很清楚了,我来解释下%(film.filmName).decode("utf-8").encode('gb2312'),%是取出我存在film.py里面的值,为什么要用decode在encode呢?右键查看页面源代码,你会发现,电影天堂

并不是utf-8编码,而是gb2312,所以我们要encode呀,刚才我们看到keyword是看不懂的火星文,我们现在知道了,它其实是gb2312编码,所以这里我们把filmName先解码成utf-8,变成能看懂的“傲骨贤妻“,再编码成gb2312

电影天堂后台所能看懂的“傲骨贤妻”,ok,这样so.php就可以执行我们的查询操作,kwtype=0&searchtype=titile带上吧,反正也不累。

关于正则语法,是python基础,可以去慕课网学习,我就不解释了。我们目的是看到html里面超链接的特点,进行正则匹配

# coding=utf-8
import urllib2
import film
import re
opener = urllib2.build_opener()#构建一个handler对象
def search():req = urllib2.Request('http://s.ygdy8.com/plus/so.php')#so.php请求参数将中文进行了Url.encode(),所以需要将中文encode('gb2312')处理req.add_data('kwtype=0&searchtype=title&keyword=%s' %(film.filmName).decode("utf-8").encode('gb2312'))html = opener.open(req).read().decode('gb2312')reg = r'/html/tv/oumeitv/[0-9]{8}/[0-9a-zA-Z.]{9,10}'return re.findall(reg,html)
search()

3.分析下载地址

我们接着对网站进行分析 ,我们刚才搜索完成

现在界面是这样,我们暂时只取第一个,也就是“2014主打美剧《傲骨贤妻》第六季”

点开第一个连接,进入熟悉的界面,终于找到我们想要的了,对,就是下载地址

4.获取下载链接

广告出奇的多。。。还好我禁用了flash

这时候打开idea,写入代码。list获取到search结果,因为search是两个,为了看到效果,我没有遍历,只取第一个搜索结果,即2014主打剧...,这里正则用u是指Unicode string,因为我们这里存在中文

html解码,正则匹配电影天堂下载格式

def openSearchResult():list = search()req = urllib2.Request('http://www.ygdy8.com'+list[0])html = opener.open(req).read().decode('gb2312','ignore')reg = u'ftp://[a-z0-9]+:[a-z0-9]+@[a-z0-9]+.[a-z]{1,8}.[a-z]{3}:[\d]{4}/[\u4e00-\u9fa5]{0,10}[\W]*\[阳光电影www.ygdy8.com\][\u4e00-\u9fa5]*[\d]+[\u4e00-\u9fa5]\[[\u4e00-\u9fa5]+\].rmvb'return re.findall(reg,html)
openSearchResult()

然后再用list把openSearchResult遍历出来,Unicode string必须遍历才能看到中文

def getList():for i in openSearchResult():print i
getList()

结果如下,复制下来到迅雷就可以下载啦

我把fileName换成行尸走肉

5.源码

这个是正则基本语法https://github.com/cjy513203427/pachong/tree/master/regularExpression

这个是该博客的源码:https://github.com/cjy513203427/pachong/tree/master/downloadDytt

posted @ 2018-04-30 14:36 Rest探路者 阅读(...) 评论(...) 编辑 收藏

Python爬取电影天堂指定电视剧或者电影相关推荐

  1. python软件安装链接电视_Python爬取电影天堂指定电视剧或者电影

    1.分析搜索请求 一位高人曾经说过,想爬取数据,要先分析网站 今天我们爬取电影天堂,有好看的美剧我在上面都能找到,算是很全了. 这个网站的广告出奇的多,用过都知道,点一下搜索就会弹出个窗口,伴随着滑稽 ...

  2. Python爬取知乎指定问题

    Python爬取知乎指定问题回答 记得上周写了个帖子,里面有想对知乎指定问题进行爬取,但知乎的反爬措施还是做得比较好的,想通过正常网页解析的手段去拿到数据是实现不了了,因为人家压根就不给你数据,最后呢 ...

  3. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  4. python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化

    python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化 一.抓取数据 需要的库 request库 响应http请求 json库 将文本保存成json形式 pyquery 类似JQ ...

  5. python爬取电影评分_用Python爬取猫眼上的top100评分电影

    代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...

  6. python 爬取腾讯全网影视榜 - 电影 top50 名字以及相应地址保存

    目标网站: https://v.qq.com/x/hotlist/search/?channel=1 对网站发送请求 import requestsurl = 'https://v.qq.com/x/ ...

  7. python爬取豆瓣排名前250部电影封面

    话不多说,先给出网页地址豆瓣电影 Top 250,进入后我们按F12打开开发者工具查看网页信息,然后随便右键点击一张电影封面查看元素如图: 容易看出我们所需要的封面地址在img这个标签下的src属性当 ...

  8. Python爬取今日头条指定用户发表的所有文章,视频,微头条

    前言 文的文字及图片过滤网络,可以学习,交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 最近找工作,爬虫面试的一个面试题.涉及的反爬还是比较全面的,结果公司要求高,要 ...

  9. python爬取搜狗微信指定关键词的全部内容

    整体思路 使用webdriver登录并搜索,注意,页面的url并不是文章的真实url,需要使用webdriver进行跳转,同时注意切换窗口的handle 函数介绍 init()----------&g ...

  10. python爬取豆瓣网即将上映的电影,数据信息存储到json文件

    1,import库的安装,在我其它博文中有:获取豆瓣网即将上映的网页信息即HTML页面. 2,解析获取到的网页的数据信息 3将获取到的数据信息,放到json文件 4,主程序

最新文章

  1. R语言卡方分布函数Binomial Distribution(dchisq, pchisq, qchisq rchisq)实战
  2. java学习笔记13--反射机制与动态代理
  3. CentOS配置SSH单向无密码访问
  4. Android 6.0动态权限
  5. UML+模式设计概述
  6. html嵌入excel_第5天 | 16天搞定前端,html布局,表格和大块头
  7. Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)
  8. 小程序点击显示隐藏(点击标题,内容显示,再次点击隐藏,同时切换箭头的状态,且默认第一组的内容显示)
  9. idea前进和后退快捷键_PR快捷键大全(喜欢记得收藏!)
  10. SQL Server 2019重新安装失败的处理方法
  11. 字符编码转换libiconv库
  12. 嗖嗖移动大厅JAVA(免费源码分享)
  13. CC2652RB硬件I2C读取FXOS8700CQ加速度传感器
  14. 8个电脑小技巧让你在朋友圈秒杀众人!
  15. Apple芯片Mac安装ARM版Win10完美教程(结尾附视频)
  16. 高德地图截屏、标记鼠标跟随示例
  17. 计算机建立excel文件,我的电脑不能新建excel!电脑excle无法使用
  18. 替换数据库某个字段中部分字符串
  19. Go语言:爱吃香蕉的珂珂
  20. HMC基金会Big Ma机器人同步代币HMC(希曼)将上线 PancakeSWAP

热门文章

  1. 局域网架设 NOD 32 镜像更新服务器
  2. isbn书号查询php代码,eoLinker-API Shop ISBN书号查询 PHP调用示例代码
  3. Windows添加共享文件夹添加一个网络位置图文教程
  4. 工作多年,分享16条实用职场经验给你
  5. Webpack打包警告: We noticed you're using the `useBuiltIns` option without declaring a core-js version.
  6. dns 监控系统 设计 dns安全威胁的可视化。
  7. 华为7c手机怎么恢复出厂设置_华为荣耀畅玩7A/7C解锁教程_荣耀畅玩7A/7C用官方解锁码解锁方法...
  8. 利用css来制作轮播图
  9. Springboot集成Screw生成数据库表结构文档
  10. Port Security (端口安全)