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实现获取操作系统版本信息方法
Apr 08 Python
Python教程之全局变量用法
Jun 27 Python
Python 专题一 函数的基础知识
Mar 16 Python
Python中的函数作用域
May 07 Python
Python实现的简单计算器功能详解
Aug 25 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
学习Python列表的基础知识汇总
Mar 10 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
pytorch 实现多个Dataloader同时训练
May 29 Python
asyncio异步编程之Task对象详解
Mar 13 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/02/21 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
Python 私有化操作实例分析
2019/11/21 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
小学教育毕业生自荐信
2013/11/18 职场文书
电气技术员岗位职责
2013/11/19 职场文书
安全生产汇报材料
2014/02/17 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
小学生毕业评语
2014/12/26 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android