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中的引用和拷贝浅析
Nov 22 Python
django基础之数据库操作方法(详解)
May 24 Python
如何在python中使用selenium的示例
Dec 26 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python 列表推导式使用详解
Aug 29 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
Yii实现简单分页的方法
2016/04/29 PHP
asp.net和php的区别点总结
2019/10/10 PHP
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
2017/05/07 Javascript
jQuery制作全屏宽度固定高度轮播图(实例讲解)
2017/07/08 jQuery
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
对pandas中apply函数的用法详解
2018/04/10 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
财务会计专业推荐信
2013/11/30 职场文书
求职简历中个人的自我评价
2013/12/01 职场文书
初一科学教学反思
2014/01/27 职场文书
运动会邀请函范文
2014/02/06 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
新年晚会开场白
2015/05/29 职场文书
python实现网络五子棋
2021/04/11 Python