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实现从脚本里运行scrapy的方法
Apr 07 Python
初步解析Python下的多进程编程
Apr 28 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python冲顶大会 快来答题!
Jan 17 Python
python在线编译器的简单原理及简单实现代码
Feb 02 Python
python实现树形打印目录结构
Mar 29 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
Feb 28 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
Django windows使用Apache实现部署流程解析
Oct 12 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
python基础之文件处理知识总结
May 23 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判断所处服务器操作系统的类型
2013/06/20 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python解析文件示例
2014/01/23 Python
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python线程信号量semaphore使用解析
2019/11/30 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
超市重阳节活动方案
2014/02/10 职场文书
我爱读书演讲稿
2014/05/07 职场文书
导游词400字
2015/02/13 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
小学体育课教学反思
2016/02/16 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS