求助关于you-get的问题

wxuyec
wxuyec 04月03日 字数 2097

大家好,我以前可以用you-get下载B站的视频,

不过现在出现这样的问题。

Traceback (most recent call last):

File "/usr/lib/python3.8/site-packages/you_get/common.py", line 955, in download_urls

total_size = urls_size(urls, faker=faker, headers=headers)

File "/usr/lib/python3.8/site-packages/you_get/common.py", line 524, in urls_size

return sum([url_size(url, faker=faker, headers=headers) for url in urls])

File "/usr/lib/python3.8/site-packages/you_get/common.py", line 524, in <listcomp>

return sum([url_size(url, faker=faker, headers=headers) for url in urls])

File "/usr/lib/python3.8/site-packages/you_get/common.py", line 515, in url_size

response = urlopen_with_retry(request.Request(url, headers=headers))

File "/usr/lib/python3.8/site-packages/you_get/common.py", line 408, in urlopen_with_retry

return request.urlopen(*args, **kwargs)

File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen

return opener.open(url, data, timeout)

File "/usr/lib/python3.8/urllib/request.py", line 525, in open

response = self._open(req, data)

File "/usr/lib/python3.8/urllib/request.py", line 547, in _open

return self._call_chain(self.handle_open, 'unknown',

File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain

result = func(*args)

File "/usr/lib/python3.8/urllib/request.py", line 1387, in unknown_open

raise URLError('unknown url type: %s' % type)

urllib.error.URLError: <urlopen error unknown url type: ['http>

我是在windows中cygwin下用

pip3.8 install you-get

安装的you-get。

开始我也觉得可能是因为这个视频的网址和

我以前下载的视频的网址有点不一样的原因。以前的网址是这样

https://www.bilibili.com/video/av90402289?p=1

这个视频的网址是

https://www.bilibili.com/video/BV1KW411S7FB?p=22

于是我打开bilibili.py看了一下,想看看能不能修改,不过看不大懂。

于是我又回头看以前我下的视频的网址,他们没有变,于是我

想下载试试,结果现在也遇到同上的问题。

上次用了@callmebbser提供的程序时也遇到url不对的问题,

当时是因为我的python是3.6的,有些语法不同了。我怀疑

我新安装的you-get也是这个问题,于是我把原来用pip3.6安装

的you-get卸载了,重新用pip3.8安装一次,结果不对。

Python Python的自由天空
12 个回复
annals
repeat 04月03日

看起来因为是b站的网页改版了..等更新或者自己改改代码吧

【 在 wxuyec (wxuyec) 的大作中提到: 】

: 大家好,我以前可以用you-get下载B站的视频,

: 不过现在出现这样的问题。

: Traceback (most recent call last):

: ...................

sah166
撒轰 04月03日

地址不对吧,http>是什么?

【 在 wxuyec 的大作中提到: 】

: 大家好,我以前可以用you-get下载B站的视频,

: 不过现在出现这样的问题。

: Traceback (most recent call last):

: ...................

hgoldfish
老鱼 04月03日

url 要加引号。

【 在 wxuyec (wxuyec) 的大作中提到: 】

: 大家好,我以前可以用you-get下载B站的视频,

: 不过现在出现这样的问题。

: Traceback (most recent call last):

: ...................

wxuyec
wxuyec 04月03日

谢谢,我试了,还是一样的错误。

【 在 hgoldfish 的大作中提到: 】

: url 要加引号。

SoulMelody
lovestar 04月03日

https://github.com/zhangn1985/ykdl

发自「今日水木 on Android」

【 在 wxuyec 的大作中提到: 】

: 大家好,我以前可以用you-get下载B站的视频,

: 不过现在出现这样的问题。

: Traceback (most recent call last):

: File "/usr/lib/python3.8/site-packages/you\_get/common.py", line 955, in download\_urls

: total\_size = urls\_size(urls, faker=faker, headers=headers)

: File "/usr/lib/python3.8/site-packages/you\_get/common.py", line 524, in urls\_size

: return sum(\[url_size(url, faker=faker, headers=headers) for url in urls\])

: File "/usr/lib/python3.8/site-packages/you_get/common.py", line 524, in <listcomp>

: return sum(\[url_size(url, faker=faker, headers=headers) for url in urls\])

: File "/usr/lib/python3.8/site-packages/you\_get/common.py", line 515, in url\_size

: response = urlopen\_with\_retry(request.Request(url, headers=headers))

: File "/usr/lib/python3.8/site-packages/you\_get/common.py", line 408, in urlopen\_with_retry

: return request.urlopen(\*args, \*\*kwargs)

: File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen

: return opener.open(url, data, timeout)

: File "/usr/lib/python3.8/urllib/request.py", line 525, in open

: response = self._open(req, data)

: File "/usr/lib/python3.8/urllib/request.py", line 547, in _open

: return self.\_call\_chain(self.handle_open, 'unknown',

: File "/usr/lib/python3.8/urllib/request.py", line 502, in \_call\_chain

: result = func(*args)

: File "/usr/lib/python3.8/urllib/request.py", line 1387, in unknown_open

: raise URLError('unknown url type: %s' % type)

: urllib.error.URLError: <urlopen error unknown url type: \https://www.bilibili.com/video/av90402289?p=1

: 这个视频的网址是

https://www.bilibili.com/video/BV1KW411S7FB?p=22

: 于是我打开bilibili.py看了一下,想看看能不能修改,不过看不大懂。

: 于是我又回头看以前我下的视频的网址,他们没有变,于是我

: 想下载试试,结果现在也遇到同上的问题。

: 上次用了@callmebbser提供的程序时也遇到url不对的问题,

: 当时是因为我的python是3.6的,有些语法不同了。我怀疑

: 我新安装的you-get也是这个问题,于是我把原来用pip3.6安装

: 的you-get卸载了,重新用pip3.8安装一次,结果不对。

: --

wxuyec
wxuyec 04月03日

你好,谢谢。

不过我在安装这个的时候遇到这个问题。

这个是网络的问题么?我已经尝试几次了,

有时候到90多KB,有时候到180多kB,这个只到了40kB。

谢谢

Collecting pycryptodome (from ykdl)

Downloading https://files.pythonhosted.org/packages/69/2a/298b2689bee8e88c502c7e85ba1c9f07c7e182ea91c705c449f693056c9f/pycryptodome-3.9.7.tar.gz (15.5MB)

|                                | 40kB 6.0kB/s eta 0:42:28ERROR: Exception:

Traceback (most recent call last):

File "/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py", line 397, in _error_catcher

yield

File "/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py", line 479, in read

data = self._fp.read(amt)

File "/usr/lib/python3.6/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 62, in read

data = self.__fp.read(amt)

File "/usr/lib/python3.6/http/client.py", line 459, in read

n = self.readinto(b)

File "/usr/lib/python3.6/http/client.py", line 503, in readinto

n = self.fp.readinto(b)

File "/usr/lib/python3.6/socket.py", line 586, in readinto

return self._sock.recv_into(b)

File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into

return self.read(nbytes, buffer)

File "/usr/lib/python3.6/ssl.py", line 874, in read

return self._sslobj.read(len, buffer)

File "/usr/lib/python3.6/ssl.py", line 631, in read

v = self._sslobj.read(len, buffer)

socket.timeout: The read operation timed out

【 在 SoulMelody 的大作中提到: 】

https://github.com/zhangn1985/ykdl

: 发自「今日水木 on Android」

SoulMelody
lovestar 04月04日

可以把pypi源换成清华的https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

发自「今日水木 on Android」

【 在 wxuyec 的大作中提到: 】

: 你好,谢谢。

: 不过我在安装这个的时候遇到这个问题。

: 这个是网络的问题么?我已经尝试几次了,

: 有时候到90多KB,有时候到180多kB,这个只到了40kB。

: 谢谢

: Collecting pycryptodome (from ykdl)

: Downloading https://files.pythonhosted.org/packages/69/2a/298b2689bee8e88c502c7e85ba1c9f07c7e182ea91c705c449f693056c9f/pycryptodome-3.9.7.tar.gz (15.5MB)

: | | 40kB 6.0kB/s eta 0:42:28ERROR: Exception:

: Traceback (most recent call last):

: File "/usr/lib/python3.6/site-packages/pip/\_vendor/urllib3/response.py", line 397, in \_error_catcher

: yield

: File "/usr/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py", line 479, in read

: data = self._fp.read(amt)

: File "/usr/lib/python3.6/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 62, in read

: data = self.__fp.read(amt)

: File "/usr/lib/python3.6/http/client.py", line 459, in read

: n = self.readinto(b)

: File "/usr/lib/python3.6/http/client.py", line 503, in readinto

: n = self.fp.readinto(b)

: File "/usr/lib/python3.6/socket.py", line 586, in readinto

: return self.\_sock.recv\_into(b)

: File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into

: return self.read(nbytes, buffer)

: File "/usr/lib/python3.6/ssl.py", line 874, in read

: return self._sslobj.read(len, buffer)

: File "/usr/lib/python3.6/ssl.py", line 631, in read

: v = self._sslobj.read(len, buffer)

: socket.timeout: The read operation timed out

: --

wxuyec
wxuyec 04月04日

谢谢回复。我已经改了源了,ykdl也安上了。不过还是不行,

请问你遇到过这样的问题么?谢谢

ykdl https://www.bilibili.com/video/BV1BW411G7cW?p=63

Traceback (most recent call last):

File "/usr/bin/ykdl", line 11, in <module>

load_entry_point('ykdl==1.6.2', 'console_scripts', 'ykdl')()

File "/usr/lib/python3.8/site-packages/cykdl/__main__.py", line 173, in main

info = parser(u)

File "/usr/lib/python3.8/site-packages/ykdl/extractor.py", line 24, in parser

info = self.prepare()

File "/usr/lib/python3.8/site-packages/ykdl/extractors/bilibili/bilibase.py", line 49, in prepare

self.vid, info.title = self.get_vid_title()

File "/usr/lib/python3.8/site-packages/ykdl/extractors/bilibili/video.py", line 26, in get_vid_title

html = get_content(self.url)

File "/usr/lib/python3.8/site-packages/ykdl/util/html.py", line 67, in get_content

response = urlopen(req)

File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen

return opener.open(url, data, timeout)

File "/usr/lib/python3.8/urllib/request.py", line 531, in open

response = meth(req, response)

File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response

response = self.parent.error(

File "/usr/lib/python3.8/urllib/request.py", line 569, in error

return self._call_chain(*args)

File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain

result = func(*args)

File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default

raise HTTPError(req.full_url, code, msg, hdrs, fp)

urllib.error.HTTPError: HTTP Error 404: Not Found

这个地址是没问题的,用浏览器是能播放的。

还有请问,你安装的是1.6.2版本么?我看好像已经有1.6.3了,不过

我用pip3 install --upgrade ykdl 安装的是1.6.2版。

【 在 SoulMelody 的大作中提到: 】

: 可以把pypi源换成清华的https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

: 发自「今日水木 on Android」

wxuyec
wxuyec 04月04日

去看了一下closed issues. 用这个可以升级到最新版

pip install --upgrade https://github.com/zhangn1985/ykdl/archive/master.zip

现在下载了。谢谢

【 在 SoulMelody 的大作中提到: 】

: 可以把pypi源换成清华的https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

: 发自「今日水木 on Android」

Jangbi
The Last Protoss 04月11日

这个代码github上面已经改了,得去看一下别人是怎么改的。

https://github.com/soimort/you-get/pull/2781/commits/b4ea5976fb51233e0289196eb39fa73a6f3e1829

https://github.com/soimort/you-get/pull/2782/commits/d6afc2e829f152d3b6d88944d1ad1ce7fe30776b

我自己改后,想提一个mr,结果发现github已经改了。

不过自己代码写的还是有点差。

【 在 wxuyec (wxuyec) 的大作中提到: 】

: 大家好,我以前可以用you-get下载B站的视频,

: 不过现在出现这样的问题。

: Traceback (most recent call last):

: ...................

wxuyec
wxuyec 04月12日

谢谢,现在在用下面一个网友说的ykdl。

一会儿去试试

【 在 Jangbi 的大作中提到: 】

: 这个代码github上面已经改了,得去看一下别人是怎么改的。

https://github.com/soimort/you-get/pull/2781/commits/b4ea5976fb51233e0289196eb39fa73a6f3e1829

https://github.com/soimort/you-get/pull/2782/commits/d6afc2e829f152d3b6d88944d1ad1ce7fe30776b

: ...................

wxuyec
wxuyec 04月12日

不是这个问题,我看了,我的bilibili.py中已经是新的写法了。

【 在 Jangbi 的大作中提到: 】

: 这个代码github上面已经改了,得去看一下别人是怎么改的。

https://github.com/soimort/you-get/pull/2781/commits/b4ea5976fb51233e0289196eb39fa73a6f3e1829

https://github.com/soimort/you-get/pull/2782/commits/d6afc2e829f152d3b6d88944d1ad1ce7fe30776b

: ...................