python下电影_Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法...

本文实例讲述了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展现在页面效果如下:

另一个网站的

# -*- 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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

假设检验背后的逻辑

内容转自知乎相关问题答案,写的很清晰。 1. 概述逻辑: 全称命题只能被否证而不能被证明。这个道理很简单,个案当然不足以证明一个全称命题,但是却可以否定全称命题。 研究时,我们当然不希望否证自己的研究假设&#xf…

Arduino上U8g2库自制中文库

U8g2最新版的本身自带中文库,之所以需要自制,是为了减小内存; 文章最后会标一下u8g2自带的中文库不过有些板子不能用gb2312等大字体; 字体库需要的是需要的是下面的这种编码,而实现这种编码,就需要map文件…

数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)

一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据。 a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件。 二.利用生成的数据库创建表加同步数据sql。…

汽车行业会用到python吗_无人驾驶是未来5年最具竞争行业,会python就能拿高薪!...

今天,无论是在硅谷还是在 BAT ,无人驾驶技术的发展都已经势不可挡。在不久的将来,个人交通出行的主要方式将是成批的无人驾驶车,极大提升道路安全。而目前,无人驾驶领域的职位需求已经开始快速增长。根据腾讯研究院与 …

链表反转python

def reverse_node_list(head):if not head or not head.next:return headprev Nonewhile head:curr headhead head.nextcurr.next prevprev currreturn prev 设置三个指针, prev指向前一个节点, head 指向现在的节点, curr指向下一个要去…

字符串之字符判断以及字母的大小写转换

char c //给定字符c 1.isalpha© //判断是否是字母 2.isdigit© //判断是否是数字 3.islower© //判断是否是小写字母 4.isupper© //判断是否是大写字母 5.tolower© //转变成小写字母 6.touper© //转变成代写字母 至于说应用,看代码悟吧…

symfony api 错误响应_Postman for Mac(API管理开发软件)

Postman for Mac是一款可在Mac端运行的API管理开发软件,postman 下载 mac不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求,用户可以利用Chrome插件的形式把各种模拟用户HTTP请求的数据发送到服务…

前端学习

学习整理了web缓存的一些策略,如有不正确的地方,欢迎指正。 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则是在HTTP协议头和HTML页面的Meta标签中定义的。他们分别从新鲜度和校验值两个维度来规定浏览器是否可以直接使用缓存中的副本&…

string的反转输出以及char型字符串的反转输出

string str; //string型变量str char str1[]; //char型变量str string的反转输出: reverse(str.begin(),str.end()) char型的反转输出: strrev(str1); 实际应用看参考代码: #include<iostream> #include<bits/stdc.h> using namespace std; int main() {string s…

数据流图怎么画_概率图模型怎么画?5个步骤完成专业模型图

概率图模型是什么呢&#xff1f;概率图模型是用图形模式来表示各个变量概率相关关系以及与模型有关的变量的联合概率分布的一类模型。概率图理论可分为概率图模型表示理论、概率图模型推理理论和概率图模型学习理论三部分。概率图模型一般包括贝叶斯网络、马尔可夫网络和隐马尔…

res.status === 200含义

200本身就是http请求成功的响应值

process启动jar包判断成功_恒一广告助力2020年壹基金温暖包安康发放启动仪式成功举办...

有爱的冬天不会冷11月28日上午&#xff0c;由共青团安康市委、安康市教育体育局、安康市民政局、安康市关心下一代组委会、安康广播电视台、安康义工联合会主办的“壹家人温暖安康共青团助力脱贫攻坚暖冬行动”暨2020年壹基金温暖包安康发放启动仪式在安康市金州体育场成功举办…

pat(基本编程题集)6-2 多项式求值 (15 分)

这道题感觉有点狗&#xff0c;不难&#xff0c;但是第一次做的时候&#xff0c;运行超时错误让我很不解&#xff0c;一共才10个数大的数组&#xff0c;最坏情况也不过是10*10的时间复杂度O&#xff08;1&#xff09;。 但是限制就是辣么严&#xff0c;这个单层循环的优化有些类…

python read()为什么返回少一个字符_python-熊猫read_excel(sheet name = None)返回字符串字典,而不是数据帧?...

pandas read_excel documentation说,指定sheet_name None应该返回“所有表作为DataFrames的字典”.但是,当我尝试像这样使用它时,我得到了一个字符串字典.target_file "C:\file_here.xlsx"data pd.read_excel(target_file)print(type(data))data pd.read_excel(t…

Zabbix Server设置主机监控

转载于:https://www.cnblogs.com/momenglin/p/8557447.html

C语言之double实数的自动四舍五入取整

之前学习C语言的时候一直没有注意到原来double类型的数据在C里通过取不同的小数位数&#xff0c;输出能够实现四舍六入。 指正: double型数据可以实现0到4的舍操作以及6到9的入操作&#xff0c; 在真值为5的时候&#xff0c;舍入并不确定。 这里通过一个案例&#xff0c;一看…

mysql修改字段默认值_MySQL增删改查操作

增删改查操作查询表中的所有的记录&#xff1a;select from 表名(xs)创建数据库&#xff1a;create database if not exists xsgl;8.2创建表&#xff1a;cerate table if not exists&#xff08;判断是否存在&#xff09; 表名&#xff08;xsb&#xff09;8.3删除&#xff1a;d…

三羊献瑞(暴力破解)

package 计蒜客;public class 三羊献瑞 {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubfor(int i5000;i<9876;i){for(int j1023;j<9876;j){int kij;int ai/1000;int b(i/100)%10;int c(i/10)%10;int di%10;int ej/1000;…

回来来看初学C语言的一些有趣的图形的输出

现在再来看那些当初觉得困难的东西&#xff0c;经常都会一笑而过。 图1: a.源码: #include<iostream> using namespace std; int main() {int n;cin>>n;for(int i1;i<n;i){for(int j1;j<n-i;j){cout<<" ";}for(int k1;k<n;k){cout<&l…

视图添加字段_使用ExploreByTouchHelper辅助类为自定义视图添加虚拟视图

在安卓开发过程中&#xff0c;为了视觉和功能的需要开发者经常会使用自定义视图大多数的自定义视图是组合现有的控件来完成特定的功能但是&#xff0c;有一种自定义视图是通过画笔在画布上画出自定义的子视图的&#xff0c;例如日期控件&#xff0c;颜色选择面板等由于自定义视…