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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
在Python的框架中为MySQL实现restful接口的教程
Apr 08 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Python中交换两个元素的实现方法
Jun 29 Python
numpy中loadtxt 的用法详解
Aug 03 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
Dec 02 Python
pytorch 实现查看网络中的参数
Jan 06 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 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
Terran兵种对照表
2020/03/14 星际争霸
php daodb插入、更新与删除数据
2009/03/19 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
JavaScript静态的动态
2006/09/18 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
Atom的python插件和常用插件说明
2018/07/08 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python文件读写代码实例
2019/10/21 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
岗位标兵事迹材料
2014/05/17 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书
工程部部长岗位职责
2015/02/12 职场文书
单位同意报考证明
2015/06/17 职场文书
Window server中安装Redis的超详细教程
2021/11/17 Redis