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比较两个列表大小的方法
Jul 11 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
Python+微信接口实现运维报警
Aug 27 Python
Python进阶篇之字典操作总结
Nov 16 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
python机器学习实战之K均值聚类
Dec 20 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
python中树与树的表示知识点总结
Sep 14 Python
python with (as)语句实例详解
Feb 04 Python
Python list和str互转的实现示例
Nov 16 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php一次性删除前台checkbox多选内容的方法
2013/09/22 PHP
使用PHP curl模拟浏览器抓取网站信息
2013/10/28 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
JS加载解析Markdown文档过程详解
2020/05/19 Javascript
python实现控制台打印的方法
2019/01/12 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
创意活动策划书
2014/01/15 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
抵押贷款承诺书
2014/05/30 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
邀请函样本
2015/02/02 职场文书
公司员工培训管理制度
2015/08/04 职场文书
小学班主任心得体会
2016/01/07 职场文书