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 相关文章推荐
详细分析python3的reduce函数
Dec 05 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python实现堆和索引堆的代码示例
Mar 19 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
python用requests实现http请求代码实例
Oct 31 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
Python bisect模块原理及常见实例
Jun 17 Python
8种常用的Python工具
Aug 05 Python
python 生成正态分布数据,并绘图和解析
Dec 21 Python
python tkinter模块的简单使用
Apr 07 Python
Python自动化测试PO模型封装过程详解
Jun 22 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知道与问问的采集插件代码
2010/10/12 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
laravel学习教程之关联模型
2016/07/30 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
php微信开发之图片回复功能
2018/06/14 PHP
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
js实现表格数据搜索
2020/08/09 Javascript
python实现排序算法
2014/02/14 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
Python实现画图软件功能方法详解
2020/07/28 Python
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
C++:局部变量能否和全局变量重名
2014/03/03 面试题
库房保管员岗位职责
2014/04/07 职场文书
实习公司领导推荐函
2014/05/21 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
机关工会工作总结2015
2015/05/26 职场文书
工作后的感想
2015/08/07 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python