Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法


Posted in Python onAugust 26, 2019

本文实例讲述了Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法。分享给大家供大家参考,具体如下:

做个笔记
(python 3.6,django 2.0)

def get_url(outer_order_id):
  refundId = get_refundId(outer_order_id)
  host_url = 'http://test.shequ.com/order/agreeRefund?'
  reason_list = ['商品已售完','重复订单','没有骑手接单','联系不上顾客','顾客需要重新下单']
  reason = random.choice(reason_list)
  api_data = {
    'reason':reason,
    'refundId':refundId,
    'sendType':0
  }
  url = host_url + parse.urlencode(api_data)
  return url
print(get_url('3086123456'))
http://test.shequ.com/order/agreeRefund?reason=%E9%87%8D%E5%A4%8D%E8%AE%A2%E5%8D%95&refundId=1170611&sendType=0
# -*- coding: utf-8 -*-
import urllib
from bs4 import BeautifulSoup
import re
#访问url,返回html页面
def get_html(url):
  req = urllib.request.Request(url)
  req.add_header('User-Agent','Mozilla/5.0')
  response = urllib.request.urlopen(url)
  html = response.read()
  return html
def get_movie_url(movie_name):#根据电影名称,生成搜索结果的URL
  host_url = 'http://s.dydytt.net/plus/search.php?kwtype=0&keyword='
  movie_sign = urllib.parse.quote(movie_name.encode('GBK'))
  search_url = host_url + movie_sign
  return search_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')
  host = "http://www.ygdy8.com"
  for a_url in a_urls:
    m_url = a_url.get('href')
    m_url = str(m_url)
    if re.search(r'\d{8}',m_url) and (host not in m_url):
      m_list.append(host + m_url)
  return m_list
#从电影详情页面中获取电影标题
def get_movie_title(html):
  soup=BeautifulSoup(html,'html.parser')
  fixed_html=soup.prettify()
  title=soup.find('h1')
  title=title.string
  return title
#从电影详情页面中获取此页面所有的的下载链接
def get_movie_download_url(html):
  soup = BeautifulSoup(html,'html.parser')
  fixed_html = soup.prettify()
  td = soup.find_all('td',attrs={'style':'WORD-WRAP: break-word'})
  down_urls = []
  for t in td:
    down_urls.append(t.a.get('href'))
  return down_urls
#传入电影列表,获取每个电影的下载地址
def get_movie(movie_list):
  movie_dict = {}
  for i in range(0,len(movie_list)):
    html = get_html(movie_list[i])
    html = html.decode('GBK','ignore') #忽略编码错误
    m_title = get_movie_title(html)
    if u'游戏' not in m_title: #过滤游戏
      if u'动画' not in m_title: #过滤动画片
        m_url_list = get_movie_download_url(html)
        for m_url in m_url_list:
          movie_dict[m_url] = m_title
  return movie_dict

用django展现在页面效果如下:

Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法

另一个网站的

# -*- coding: utf-8 -*-
from xpinyin import Pinyin
from bs4 import BeautifulSoup
from urllib import request,error
import time,re
import ssl
ssl._create_default_https_context = ssl._create_unverified_context #关闭https协议验证证书
def get_html(url): #访问url,返回html页面,如果url错误,则返回状态码,一般是404
  req = request.Request(url)
  req.add_header('User-Agent','Mozilla/5.0')
  try:
    response = request.urlopen(url)
    html = response.read()
    return html
  except error.HTTPError as e:
    return e.code
def get_m_html(movie_name):#根据电影名称,返回正确的电影html
  pin = Pinyin()
  pinyin_movie_name = pin.get_pinyin(movie_name,"")#不使用分隔符,默认是-
  movie_type = {
    "Sciencefiction":"科幻片",
    "Horror"    :"恐怖片",
    "Drama"     :"剧情片",
    "Action"    :"动作片",
    "Comedy"    :"喜剧片",
    "Love"     :"爱情片",
    "War"      :"战争片"
  }
  host = "https://www.kankanwu.com"
  for k,v in movie_type.items():
    movie_url = host + "/" + k + "/" + pinyin_movie_name + "/"
    html = get_html(movie_url)
    if isinstance(html,int):
      time.sleep(10)
    else:
      return html
def get_dload_url(html): #从电影html页面中获取下载地址
  movie_dict = {}
  soup = BeautifulSoup(html,'lxml')
  fixed_html = soup.prettify()
  a_urls = soup.find_all(href=re.compile("thunder"))#找到含有thunder链接的href
  for url in a_urls:
    m_title = url.get('title')
    m_url = url.get('href')
    movie_dict[m_title] = m_url
  return movie_dict

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

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

Python 相关文章推荐
Python二分法搜索算法实例分析
May 11 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
Python爬虫常用库的安装及其环境配置
Sep 19 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
python实现批量命名照片
Jun 18 Python
python如何构建mock接口服务
Jan 28 Python
解决python3安装pandas出错的问题
May 20 Python
Pandas 稀疏数据结构的实现
Jul 25 Python
Python requests用法和django后台处理详解
Mar 19 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
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 #Python
在Python3 numpy中mean和average的区别详解
Aug 24 #Python
You might like
让PHP更快的提供文件下载的代码
2012/06/13 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php单链表实现代码分享
2016/07/04 PHP
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
Move.js入门
2017/02/08 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Django celery异步任务实现代码示例
2020/11/26 Python
python反扒机制的5种解决方法
2021/02/06 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
为什么需要版本控制
2016/10/28 面试题
幼儿园中班新学期寄语
2014/01/18 职场文书
总会计师岗位职责
2014/02/19 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
安全生产月宣传标语
2014/10/06 职场文书
横空出世观后感
2015/06/09 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL