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 break语句详解
Mar 11 Python
Python中获取网页状态码的两个方法
Nov 03 Python
Python实用日期时间处理方法汇总
May 09 Python
解密Python中的描述符(descriptor)
Jun 03 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
Pycharm设置界面全黑的方法
May 23 Python
python爬虫获取百度首页内容教学
Dec 23 Python
python conda操作方法
Sep 11 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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 array_flip() 删除数组重复元素
2009/01/14 PHP
php格式化电话号码的方法
2015/04/24 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
浅谈node的事件机制
2017/10/09 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
python字符串对其居中显示的方法
2015/07/11 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python创建字典的八种方式
2019/02/27 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
教师岗位职责
2013/11/17 职场文书
yy结婚证婚词
2014/01/10 职场文书
协议书模板
2014/04/23 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
储备店长岗位职责
2015/04/14 职场文书
大学生暑假实习总结
2015/07/13 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书