鱼C论坛

 找回密码
 立即注册
查看: 1701|回复: 9

[已解决]零基础中56讲 跟着小甲鱼老师打的 怎么出错了 求教

[复制链接]
发表于 2018-6-21 11:29:57 | 显示全部楼层 |阅读模式

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

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

x
这是跟着的代码。出现的错误在下面。
import urllib.request
import os
import string

def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')
    response = urllib.request.urlopen(url)
    html = response.read()

    return html
     
def get_page(url):
    html = url_open(url).decode('utf-8')

    a = html.find('current-comment-page') + 23
    b = html.find(']',a)

    return html[a:b]
   

def find_img(url):
    html = url_open(url).decode('utf-8')
    img_addrs = []
   
    a = html.find('img src=')
   
    while a != -1:
        b = html.find('.jpg',a,a+255)
        if b != -1:
            img_addrs.append(html[a+9,b+4])
        else:
            b = a+9

        a = html.find('img src=',b)

    return img_addrs

        
def save_img(folder,img_addrs):
    for each in img_addrs:
        filename = each,split('/')[-1]
        with open(filename,'wb') as f:
            img = url_open(each)
            f.write(img)

def download_mm(folder = 'OOXX',page = 10):
    os.mkdir(folder)
    os.chdir(folder)

    url = "http://jandan.net/ooxx/"
    page_num = int(get_page(url))

    for i in range(page):
        page_num -= i
        page_url = url + 'page-' + str(page_num) + '#comments'
        img_addrs = find_img(page_url)
        save_imgs(folder,img_addrs)


if __name__ == '__main__':
    download_mm()



出现的错误
============
Traceback (most recent call last):
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 62, in <module>
    download_mm()
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 57, in download_mm
    img_addrs = find_img(page_url)
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 31, in find_img
    img_addrs.append(html[a+9,b+4])
TypeError: string indices must be integers
>>>
   求大佬解决一下
最佳答案
2018-6-21 17:28:25
第31行  img_addrs.append(html[a+9,b+4])  ,没看视频,这里  你是想写切片吗,应该是html[a+9:b+4]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-21 13:53:57 | 显示全部楼层
还没听到那么深
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-21 15:28:21 | 显示全部楼层
amw07 发表于 2018-6-21 13:53
还没听到那么深

浮夸了老哥   有没有认识的大佬 帮忙解决下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-21 17:28:25 | 显示全部楼层    本楼为最佳答案   
第31行  img_addrs.append(html[a+9,b+4])  ,没看视频,这里  你是想写切片吗,应该是html[a+9:b+4]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-21 18:38:30 | 显示全部楼层
ba460 发表于 2018-6-21 17:28
第31行  img_addrs.append(html[a+9,b+4])  ,没看视频,这里  你是想写切片吗,应该是html[a+9:b+4]

改完之后又出现了问题 不知所措  大佬求解
错误提示下
Traceback (most recent call last):
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 62, in <module>
    download_mm()
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 58, in download_mm
    save_img(folder,img_addrs)
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 44, in save_img
    img = url_open(each)
  File "C:\Users\10757\Desktop\py\未解决download_mm.py", line 6, in url_open
    req = urllib.request.Request(url)
  File "C:\Users\10757\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 329, in __init__
    self.full_url = url
  File "C:\Users\10757\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 355, in full_url
    self._parse()
  File "C:\Users\10757\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 384, in _parse
    raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: '//cdn.jandan.net/static/sos/panda2.jpg'
>>>
是不是内置的request除了问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 00:51:41 From FishC Mobile | 显示全部楼层
for i in range(page):
        page_num -= i。   他这里遍历的话,不会跨页吗?i是0-9但是每次的话,page_mub不是都变化了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 10:55:48 | 显示全部楼层
yejiangmin 发表于 2018-6-22 00:51
for i in range(page):
        page_num -= i。   他这里遍历的话,不会跨页吗?i是0-9但是每次的话,pag ...

老哥 是错了吗  
要怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-22 11:17:37 | 显示全部楼层
帅超要变强 发表于 2018-6-22 10:55
老哥 是错了吗  
要怎么改

我也不是很懂,小白,我只是感觉是不是有问题,其实问题也不大,只是跨页了,图片一样可以打出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-1 22:34:48 | 显示全部楼层
帅超要变强 发表于 2018-6-21 18:38
改完之后又出现了问题 不知所措  大佬求解
错误提示下
Traceback (most recent call last):

我的也是一直报错,打印了一下地址列表,发现列表里只有一个‘//cdn.jandan.net/static/sos/panda2.jpg’,不知道是不是网站反爬了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-5 18:10:57 | 显示全部楼层
你的问题解决没有?我在过程中也发现这个问题 然后去煎蛋网站发现了这个问题 是有静态资源的前缀跟后缀都满足匹配方式才有的报错。暂时还没找到解决方法。如果有的话 麻烦分享一下。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 19:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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