鱼C论坛

 找回密码
 立即注册
查看: 1098|回复: 8

[已解决]爬的懒人听书的音频,为啥有的好使,有的下不了呢

[复制链接]
发表于 2019-3-12 13:25:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
e:\>python ex5.py
请输入书名,一定要保证正确:疯狂的医院
3840
22
正在下载《第01集_疯狂的医院》  请稍后....................
《第01集_疯狂的医院》下载完毕!!!!
正在下载《第02集_疯狂的医院》  请稍后....................
《第02集_疯狂的医院》下载完毕!!!!
正在下载《第03集_疯狂的医院》  请稍后....................
《第03集_疯狂的医院》下载完毕!!!!
正在下载《第04集_疯狂的医院》  请稍后....................
《第04集_疯狂的医院》下载完毕!!!!
正在下载《第05集_疯狂的医院》  请稍后....................
《第05集_疯狂的医院》下载完毕!!!!
正在下载《第06集_疯狂的医院》  请稍后....................
《第06集_疯狂的医院》下载完毕!!!!
正在下载《第07集_疯狂的医院》  请稍后....................
《第07集_疯狂的医院》下载完毕!!!!
正在下载《第08集_疯狂的医院》  请稍后....................
《第08集_疯狂的医院》下载完毕!!!!
正在下载《第09集_疯狂的医院》  请稍后....................
《第09集_疯狂的医院》下载完毕!!!!
正在下载《第10集_疯狂的医院》  请稍后....................
《第10集_疯狂的医院》下载完毕!!!!
正在下载《第11集_疯狂的医院》  请稍后....................
《第11集_疯狂的医院》下载完毕!!!!
正在下载《第12集_疯狂的医院》  请稍后....................
《第12集_疯狂的医院》下载完毕!!!!
正在下载《第13集_疯狂的医院》  请稍后....................
《第13集_疯狂的医院》下载完毕!!!!
正在下载《第14集_疯狂的医院》  请稍后....................
《第14集_疯狂的医院》下载完毕!!!!
正在下载《第15集_疯狂的医院》  请稍后....................
《第15集_疯狂的医院》下载完毕!!!!
正在下载《第16集_疯狂的医院》  请稍后....................
《第16集_疯狂的医院》下载完毕!!!!
正在下载《第17集_疯狂的医院》  请稍后....................
《第17集_疯狂的医院》下载完毕!!!!
正在下载《第18集_疯狂的医院》  请稍后....................
《第18集_疯狂的医院》下载完毕!!!!
正在下载《第19集_疯狂的医院》  请稍后....................
《第19集_疯狂的医院》下载完毕!!!!
正在下载《第20集_疯狂的医院》  请稍后....................
《第20集_疯狂的医院》下载完毕!!!!
正在下载《第21集_疯狂的医院》  请稍后....................
《第21集_疯狂的医院》下载完毕!!!!
正在下载《第22集_疯狂的医院》  请稍后....................
《第22集_疯狂的医院》下载完毕!!!!

e:\>python ex5.py
请输入书名,一定要保证正确:嫡女有毒
32931
657
正在下载《第001集_嫡女有毒》  请稍后....................
Traceback (most recent call last):
  File "ex5.py", line 48, in <module>
    bookD.save()
  File "ex5.py", line 37, in save
    response = req.get(book[1])
  File "C:\Python3\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python3\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python3\lib\site-packages\requests\sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "C:\Python3\lib\site-packages\requests\sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\Python3\lib\site-packages\requests\models.py", line 313, in prepare
    self.prepare_url(url, params)
  File "C:\Python3\lib\site-packages\requests\models.py", line 387, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '': No schema supplied. Perhaps you meant http://?
最佳答案
2019-3-12 15:16:45
我的意思是让你看出错的时候打印的book,你可能打印了个空字符串也说不定,或者你先打印你的列表,肯定是列表元素有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-3-12 13:26:36 | 显示全部楼层
  1. # coding: utf-8
  2. import requests as req
  3. from lxml import etree
  4. import os

  5. class lanren:
  6.     def __init__(self, bookName):
  7.         self.name = bookName

  8.     def getInfo(self):
  9.       url = 'http://www.lrts.me/search/book/%s'%self.name
  10.       response = req.get(url)#异常以后再说
  11.       html = etree.HTML(response.text)
  12.       self.bookId = html.xpath('//a[@class="book-item-name"]')[0].xpath('@href')[0].split('/')[-1]
  13.       print(self.bookId)

  14.     def getUrl(self):
  15.       url = 'http://www.lrts.me/ajax/playlist/2/%s/1'%self.bookId
  16.       response = req.get(url)
  17.       html = etree.HTML(response.text)
  18.       self.page = int(html.xpath('//div[@class="detail"]/div/span')[1].xpath('text()')[0])
  19.       print(self.page)
  20.       self.infos = []
  21.       for p in range(self.page//10+1):
  22.         url = 'http://www.lrts.me/ajax/playlist/2/%s/%d'%(self.bookId, 1+p*10)
  23.         response = req.get(url)
  24.         html = etree.HTML(response.text)
  25.         for s in html.xpath('//div[@class="column1 nowrap"]'):
  26.           info = [s.xpath('span/text()')[0], s.xpath('input[@name="source"]/@value')[0]]
  27.           self.infos.append(info)
  28.     def save(self):
  29.       self.bookname = self.infos[0][0].split('_')[1]
  30.       if not os.path.exists(self.bookname) :
  31.         os.mkdir(self.bookname)
  32.         for book in self.infos:
  33.           print('正在下载《%s》  请稍后....................'%book[0])
  34.           response = req.get(book[1])
  35.           with open('%s/%s.mp3'%(self.bookname, book[0]), 'wb') as f:
  36.             print('《%s》下载完毕!!!!'%book[0])
  37.             f.write(response.content)
  38.             f.close()
  39.                        
  40. #if name == '__main__':
  41. keyword = input("请输入书名,一定要保证正确:")
  42. bookD = lanren(keyword)
  43. bookD.getInfo()
  44. bookD.getUrl()
  45. bookD.save()
复制代码


代码是网上抄的,,,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-12 14:57:16 | 显示全部楼层
37行你把你的book[1],在requests.get前先打印下,看看到底是不是个正常的url
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 15:08:21 | 显示全部楼层
塔利班 发表于 2019-3-12 14:57
37行你把你的book[1],在requests.get前先打印下,看看到底是不是个正常的url
  1. def save(self):
  2.       self.bookname = self.infos[0][0].split('_')[1]
  3.       if not os.path.exists(self.bookname) :
  4.         os.mkdir(self.bookname)
  5.         for book in self.infos:
  6.           print('正在下载《%s》  请稍后....................'%book[0])
  7.           print(book[1])
  8.           response = req.get(book[1])
  9.           with open('%s/%s.mp3'%(self.bookname, book[0]), 'wb') as f:
  10.             print('《%s》下载完毕!!!!'%book[0])
  11.             f.write(response.content)
  12.             f.close()
复制代码

这样添加玩并不打印book[1]  而是直接返回错误
正在下载《第001集_嫡女有毒》  请稍后....................

Traceback (most recent call last):
  File "ex5.py", line 49, in <module>
    bookD.save()
  File "ex5.py", line 38, in save
    response = req.get(book[1])
  File "C:\Python3\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python3\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python3\lib\site-packages\requests\sessions.py", line 519, in request
    prep = self.prepare_request(req)
  File "C:\Python3\lib\site-packages\requests\sessions.py", line 462, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\Python3\lib\site-packages\requests\models.py", line 313, in prepare
    self.prepare_url(url, params)
  File "C:\Python3\lib\site-packages\requests\models.py", line 387, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '': No schema supplied. Perhaps you meant http://?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 15:10:04 | 显示全部楼层
而添加了print book[1] 后 下载疯狂的医院 会是这样的结果


e:\>python ex5.py
请输入书名,一定要保证正确:疯狂的医院
3840
22
正在下载《第01集_疯狂的医院》  请稍后....................

《第01集_疯狂的医院》下载完毕!!!!
正在下载《第02集_疯狂的医院》  请稍后....................

《第02集_疯狂的医院》下载完毕!!!!
正在下载《第03集_疯狂的医院》  请稍后....................

《第03集_疯狂的医院》下载完毕!!!!
正在下载《第04集_疯狂的医院》  请稍后....................

《第04集_疯狂的医院》下载完毕!!!!
正在下载《第05集_疯狂的医院》  请稍后....................

《第05集_疯狂的医院》下载完毕!!!!
正在下载《第06集_疯狂的医院》  请稍后....................

《第06集_疯狂的医院》下载完毕!!!!
正在下载《第07集_疯狂的医院》  请稍后....................

《第07集_疯狂的医院》下载完毕!!!!
正在下载《第08集_疯狂的医院》  请稍后....................

《第08集_疯狂的医院》下载完毕!!!!
正在下载《第09集_疯狂的医院》  请稍后....................

《第09集_疯狂的医院》下载完毕!!!!
正在下载《第10集_疯狂的医院》  请稍后....................

《第10集_疯狂的医院》下载完毕!!!!
正在下载《第11集_疯狂的医院》  请稍后....................

《第11集_疯狂的医院》下载完毕!!!!
正在下载《第12集_疯狂的医院》  请稍后....................

《第12集_疯狂的医院》下载完毕!!!!
正在下载《第13集_疯狂的医院》  请稍后....................

《第13集_疯狂的医院》下载完毕!!!!
正在下载《第14集_疯狂的医院》  请稍后....................

《第14集_疯狂的医院》下载完毕!!!!
正在下载《第15集_疯狂的医院》  请稍后....................

《第15集_疯狂的医院》下载完毕!!!!
正在下载《第16集_疯狂的医院》  请稍后....................

《第16集_疯狂的医院》下载完毕!!!!
正在下载《第17集_疯狂的医院》  请稍后....................

《第17集_疯狂的医院》下载完毕!!!!
正在下载《第18集_疯狂的医院》  请稍后....................

《第18集_疯狂的医院》下载完毕!!!!
正在下载《第19集_疯狂的医院》  请稍后....................

《第19集_疯狂的医院》下载完毕!!!!
正在下载《第20集_疯狂的医院》  请稍后....................

《第20集_疯狂的医院》下载完毕!!!!
正在下载《第21集_疯狂的医院》  请稍后....................

《第21集_疯狂的医院》下载完毕!!!!
正在下载《第22集_疯狂的医院》  请稍后....................

《第22集_疯狂的医院》下载完毕!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-12 15:16:45 | 显示全部楼层    本楼为最佳答案   
我的意思是让你看出错的时候打印的book,你可能打印了个空字符串也说不定,或者你先打印你的列表,肯定是列表元素有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 15:21:29 | 显示全部楼层
塔利班 发表于 2019-3-12 15:16
我的意思是让你看出错的时候打印的book,你可能打印了个空字符串也说不定,或者你先打印你的列表,肯定是列 ...

嗯,你猜对了  真的是空

[['第001集_嫡女有毒', ''], ['第002集_嫡女有毒', ''], ['第003集_嫡女有毒', ''], ['第004集_嫡女有毒', ''], ['第005集_嫡女 有毒', ''], ['第006集_嫡女有毒', ''], ['第007集_嫡女有毒', ''], ['第008集_嫡女有毒', ''], ['第009集_嫡女有毒', ''], ['第010集_嫡女有毒', ''], ['第011集_嫡女有毒', ''], ['第012集_嫡女有毒', ''], ['第013集_嫡女有毒', ''], ['第014集_嫡女有毒', ''], ['第015集_嫡女有毒', ''], ['第016集_嫡女有毒', ''], ['第017集_嫡女有毒', ''], ['第018集_嫡女有毒', ''], ['第019集_嫡女有毒', ''], ['第020集_嫡女有毒', '']]

那怎么这个就有呢

[['第01集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/xiq6loqk.mp3'], ['第02集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/1lhjg0mg.mp3'], ['第03集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/ufekvc4e.mp3'], ['第04集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/s5jmc7at.mp3'], ['第05集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/6ymex19q.mp3'], ['第06集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/3tudccmn.mp3'], ['第07集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/phykycaf.mp3'], ['第08集_疯狂的医 院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/soigauha.mp3'], ['第09集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/3zcv61ty.mp3'], ['第10集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/kxi2e2cq.mp3'], ['第11集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/m27hk91k.mp3'], ['第12集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/6mshjpzb.mp3'], ['第13集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/ljpx7utn.mp3'], ['第14集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/uxm08fkk.mp3'], ['第15集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/79knjrpf.mp3'], ['第16集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/l46g59br.mp3'], ['第17集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/z94snzvh.mp3'], ['第18集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/q6soahge.mp3'], ['第19集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/qbdavc66.mp3'], ['第20集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/kqo9iwb2.mp3'], ['第21集_疯狂的医 院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/hssbhq5m.mp3'], ['第22集_疯狂的医院', 'http://kting.info/asdb/fiction/kongbu/fkdyy/ky6m6qlq.mp3']]

不同的小说 还不一样吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-12 15:24:02 | 显示全部楼层
你自己看吧,如果有共同规律就能几乎不修改代码爬,但是有区别就得区别对待
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-12 15:27:03 | 显示全部楼层
任重而道远啊  代码是抄来的  我还不咋会呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-13 06:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表