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遍历类中所有成员的方法
Mar 18 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
Python类的继承和多态代码详解
Dec 27 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
python实现Flappy Bird源码
Dec 24 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
python动态规划算法实例详解
Nov 22 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 22 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
Django+Celery实现定时任务的示例
Jun 23 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
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
客户端静态页面玩分页
2006/06/26 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
js控制frameSet示例
2013/09/10 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
javascript基本语法
2016/05/31 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
JavaScript编写的网页小游戏,很给力
2017/08/18 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
JS实现基本的网页计算器功能示例
2020/01/16 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
python重试装饰器示例
2014/02/11 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
python画图--输出指定像素点的颜色值方法
2019/07/03 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
个人安全生产承诺书
2014/05/22 职场文书
创新社会管理心得体会
2014/09/12 职场文书
财务会计实训报告
2014/11/05 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python