python实现的爬取电影下载链接功能示例


Posted in Python onAugust 26, 2019

本文实例讲述了python实现的爬取电影下载链接功能。分享给大家供大家参考,具体如下:

#!/usr/bin/python
#coding=UTF-8
import sys
import urllib2
import os
import chardet
from bs4 import BeautifulSoup
reload(sys)
sys.setdefaultencoding("utf-8")
#从电影html页面中获取视频下载地址
def get_movie_download_url(html):
  soup=BeautifulSoup(html,'html.parser')
  fixed_html=soup.prettify()
  td=soup.find('td',attrs={'style':'WORD-WRAP: break-word'})
  url_a=td.find('a')
  url_a=url_a.string
  return url_a
#从电影html页面中获取电影标题
def get_movie_title(html):
  soup=BeautifulSoup(html,'html.parser')
  fixed_html=soup.prettify()
  title=soup.find('h1')
  title=title.string
  return title
#访问url,返回html页面
def get_html(url):
  req=urllib2.Request(url)
  req.add_header('User-Agent','Mozilla/5.0')
  response=urllib2.urlopen(url)
  html=response.read()
  return html
#从电影列表页,获取电影的url,拼接好,存到列表后返回
def get_movie_list(url):
  m_list = []
  html = get_html(url)
  soup=BeautifulSoup(html,'html.parser')
  fixed_html=soup.prettify()
  a_urls=soup.find_all('a',attrs={'class':'ulink'})
  host = "http://www.ygdy8.net"
  for a_url in a_urls:
    m_url=a_url.get('href')
    m_list.append(host+m_url)
  return m_list
#存入txt文件
def file_edit(wr_str):
  f1 = open(r'e:\down_load_url.txt','a')
  f1.write(wr_str)
  f1.close()
#传入电影url的列表集合,获取下载地址,并写入文件
def write_to_txt(a_urls):
  for a_url in a_urls:
    html=get_html(a_url)
    html=html.decode('GBK')
    write_title=get_movie_title(html)
    write_url=get_movie_download_url(html)
    file_edit(write_title+"\n")
    file_edit(write_url+"\n")
    file_edit("\n")
#传入页数,返回这几页的url列表
def get_pages_url(num):
  urls_list = []
  url="http://www.ygdy8.net/html/gndy/dyzz/list_23_"
  for n in range(1,num+1):
    new_url = url+str(n)+".html"
    urls_list.append(new_url)
  return urls_list
if __name__=='__main__':
  pages = 2 #打算爬取几页电影
  p_url = get_pages_url(pages)
  for i in p_url:
    write_to_txt(get_movie_list(i))#执行写入
  print "done"

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
python smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
python新式类和经典类的区别实例分析
Mar 23 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 #Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 #Python
Golang GBK转UTF-8的例子
Aug 26 #Python
利用python实现周期财务统计可视化
Aug 25 #Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 #Python
numpy求平均值的维度设定的例子
Aug 24 #Python
Python实现滑动平均(Moving Average)的例子
Aug 24 #Python
You might like
php调用mysql存储过程
2007/02/14 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php学习之function的用法
2012/07/14 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
layui中使用jquery控制radio选中事件的示例代码
2018/08/15 jQuery
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
python从子线程中获得返回值的方法
2019/01/30 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
python实现按日期归档文件
2021/01/30 Python
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
机电工程专业应届生求职信
2013/10/03 职场文书
寒假实习自荐信
2014/01/26 职场文书
受资助学生感谢信
2015/01/21 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
Python获取字典中某个key的value
2022/04/13 Python