关于python ffmpy3的一点小问题
小弟最近一直在研究 如何爬取 http://jisudhw.com/ 这个网站的电影还是废话不多说 直接上代码
首先我定义了两个方法
def download(url):
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
'Referer':'http://www.jisudhw.com',
'Origin':'http://www.jisudhw.com',
'Host':'www.jisudhw.com'
}
r = req.get(url,headers = header)
r.encoding = 'utf-8'
html = BeautifulSoup(r.text,'lxml')
for each inhtml.find_all('input'):
if 'm3u8' in each.get('value'):
durl = each.get('value')
return durl
def ffmpeg_path(inputs_path, outputs_path):
a = FFmpeg(
inputs={inputs_path: None},
outputs={outputs_path: '-c copy',
}
)
print(a.cmd)
a.run()
然后调用但是调用之后 就不行了 显示
File "*:\python\*.py", line 11, in <module>
ffmpy3.FFmpeg(inputs = {url:None},outputs = {name:None}).run()
File "*:\*\ffmpy3.py", line 130, in run
raise FFRuntimeError(self.cmd, self.process.returncode, out, out)
File "*:\*\ffmpy3.py", line 273, in __init__
stdout.decode(),
AttributeError: 'NoneType' object has no attribute 'decode'
完全懵逼 不知道怎么回事 再网上找了半天 也没有解决办法 请各位大神帮忙 请上天赐给我一个编程大牛吧!!!! https://fishc.com.cn/thread-176937-1-1.html
看看这个 jtxs0000 发表于 2020-12-16 11:26
https://fishc.com.cn/thread-176937-1-1.html
看看这个
首先感谢大神帮我 不过看了你的代码之后 我只是更加疑惑 我是用bs4和re写的 你是用xpath写的 我知道你的代码可以用 我的代码也可以用 但是只针对电视剧可以用 到电影了就不行 也不知道为什么 晚点我把我的代码也发上来 wcr0021 发表于 2020-12-16 13:49
首先感谢大神帮我 不过看了你的代码之后 我只是更加疑惑 我是用bs4和re写的 你是用xpath写的 我知道你的 ...
出现AttributeError也能继续运行? jtxs0000 发表于 2020-12-17 08:56
出现AttributeError也能继续运行?
不能呗 我昨天发的代码不知道为啥没通过审核 我再发一下 import requests as re
from bs4 import BeautifulSoup
import os
import ffmpy3
# 线程模块
from multiprocessing.dummy import Pool as ThreadPool
# import easygui as g
search_keyword = input('请输入你要搜索的电影或电视剧名称:')
search_url = 'http://jisudhw.com/index.php'
search_params = {'m':'vod-search'}
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
'Referer':'http://www.jisudhw.com',
'Origin':'http://www.jisudhw.com',
'Host':'www.jisudhw.com'
}
search_dists = {'wd':search_keyword,'submit':'search'}
r = re.post(search_url,params=search_params,data=search_dists)
r.encoding = 'utf-8'
search_html = BeautifulSoup(r.text,'lxml')
search_span = search_html.find_all('span',class_='xing_vb4')
server = 'http://www.jisudhw.com'
# choice = (search_span.a.string)
# g.choicebox(msg='请选择要下载的电视剧',title='选择框',choices=choice)
for span in search_span:
url = server+span.a.get('href')
name = span.a.string
os.chdir('C:\\迅雷下载')
video_div = name
if name not in os.listdir('./'):
os.mkdir(name)
detail_url = url
resp = re.get(detail_url)
resp.encoding = 'utf-8'
detail_bf = BeautifulSoup(resp.text,'lxml')
num = 1
search_res = {}
for each_url in detail_bf.find_all('input'):
if 'm3u8' in each_url.get('value'):
url = each_url.get('value')
if url not in search_res.keys():
search_res = num
num += 1
print('第%03d集:'%num)
print(url)
print(type(url))
def download(url):
num = search_res
name = os.path.join(video_div,'第%03d集.mp4'%num)
print(type(name))
ffmpy3.FFmpeg(inputs = {url:None},outputs = {name:None}).run()
download(url)
# 开启线程下载
pool = ThreadPool(8)
result = pool.map(download,search_res.keys())
pool.close()
pool.join() jtxs0000 发表于 2020-12-17 08:56
出现AttributeError也能继续运行?
请看下倒数第二楼 wcr0021 发表于 2020-12-17 22:38
请看下倒数第二楼
bs4 我没怎么用过,如果确定代码没问题的话可能就是你换过或者删过一次 ffmpeg.exe了
如果你换了exe 的话就把这个py文件删了,代码复制到另外一个文件去
我有一次是32位换成64位的出过一次问题,之后一直正常 jtxs0000 发表于 2020-12-18 08:57
bs4 我没怎么用过,如果确定代码没问题的话可能就是你换过或者删过一次 ffmpeg.exe了
如果你换了exe...
这个问题倒是好解决 只不过就是ctrl加c或是加v的事 现在的问题是 这个代码可以下载电视剧 但是不能下电影 这我就蒙圈了啊 wcr0021 发表于 2020-12-18 10:55
这个问题倒是好解决 只不过就是ctrl加c或是加v的事 现在的问题是 这个代码可以下载电视剧 但是不能下电影 ...
有什么提示吗?我刚用我自己的很正常,电影,电视剧都可以 wcr0021 发表于 2020-12-18 10:55
这个问题倒是好解决 只不过就是ctrl加c或是加v的事 现在的问题是 这个代码可以下载电视剧 但是不能下电影 ...
我刚复制你的代码试了下。一样正常下载啊
jtxs0000 发表于 2020-12-18 16:39
我刚复制你的代码试了下。一样正常下载啊
我好像是因为没在name后面加.mp4 我今天试了半天 发现应该就是因为没加.mp4 请版主结贴 此问题已解决 函数内数据转换的问题
inputs_path = str(inputs_path)
outputs_path = str(outputs_path)
就可以了
页:
[1]