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相似模块用例
Mar 04 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 Python
Python之matplotlib绘制饼图
Apr 13 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/11/16 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
初识laravel5
2015/03/02 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python使用psutil模块获取系统状态
2016/08/27 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
详解python中的json和字典dict
2018/06/22 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
解析python实现Lasso回归
2019/09/11 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
大学学习生活感言
2014/01/18 职场文书
模范教师事迹材料
2014/02/10 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
七年级地理教学计划
2015/01/22 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python