鱼C论坛

 找回密码
 立即注册
查看: 1127|回复: 6

[已解决]用def 函数就报错 分别拿出来就可以正常运行

[复制链接]
发表于 2019-8-5 23:09:43 | 显示全部楼层 |阅读模式

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

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

x
为什么这个加起来运行就报错    单独拿出来就报错啊 第一个是合起来的    第二个是单独拿出来     哪位大神指导一下啊
  1. import requests
  2. from lxml import etree
  3. import urllib.request
  4. baseurl = 'http://mzitu.92game.net/mm/index_3.html'
  5. selector=etree.HTML(requests.get(baseurl).content)
  6. urls = []
  7. for i in selector.xpath('//div[@class="postlist"]/ul/li/a/@href'):
  8.         urls.append(i)

  9. print(urls)

  10. jpglist = []
  11. for each1 in urls:
  12.         urlhtml = 'http://mzitu.92game.net'+each1
  13.        
  14.         sel1 = etree.HTML(requests.get(urlhtml).content)
  15.         jpghtml = sel1.xpath('//div[@class="main-image"]/p/a/img/@src')[0]
  16.         jpglist.append(jpghtml)

  17. print(jpglist)
复制代码

这个运行正常   
  1. import requests
  2. from lxml import etree
  3. import urllib.request


  4. def getpage(pagenumber):
  5.         baseurl = 'http://mzitu.92game.net/mm/index_{}.html'.format(int(pagenumber))
  6.         selector=etree.HTML(requests.get(baseurl).content)
  7.         urls = []
  8.         for i in selector.xpath('////div[@class="postlist"]/ul/li/a/@href')[0]:
  9.                 urls.append(i)
  10.         return urls
  11. #print(urls)
  12. def geturl(url):
  13.         jpglist = []
  14.         for each1 in url:
  15.                 urlhtml = 'http://mzitu.92game.net'+each1
  16.                 sel1 = etree.HTML(requests.get(urlhtml).content)
  17.                 jpghtml = sel1.xpath('//div[@class="main-image"]/p/a/img/@src')
  18.                 jpglist.append(jpghtml)
  19.                 return jpglist
  20.                 print(jpg123)
  21. def downpic(url1):
  22.         for each in url1:
  23.                 filename = each.split('/')[-2]
  24.                 urllib.request.urlretrieve(each,filename)
  25. if __name__=='__main__':
  26.         pagenumber=3
  27.         for eachs in getpage(pagenumber):
  28.                 print(geturl(eachs))
复制代码

这个怎么总是报错额
最佳答案
2019-8-6 11:53:34
def geturl(url):
        jpglist = []
        for each1 in url:
                urlhtml = 'http://mzitu.92game.net'+each1
                sel1 = etree.HTML(requests.get(urlhtml).content)
                jpghtml = sel1.xpath('//div[@class="main-image"]/p/a/img/@src')
                jpglist.append(jpghtml)
                return jpglist
这段的return缩进位置不对
看代码你最终想打印出来图片列表,因为geturl(url)这个函数的缩进位置不对,返回不了正确的图片列表。把return语句放在循环外面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-6 06:56:28 From FishC Mobile | 显示全部楼层
总是报错,为神马就舍不得把错误信息贴出来呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-6 10:39:38 | 显示全部楼层
wp231957 发表于 2019-8-6 06:56
总是报错,为神马就舍不得把错误信息贴出来呢

这个怎么不能发图片啊  怎么贴额  大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-6 10:43:56 | 显示全部楼层
顶一下     有大圣吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-6 10:57:34 | 显示全部楼层
caiheng2019 发表于 2019-8-6 10:39
这个怎么不能发图片啊  怎么贴额  大哥

你级别不够  不能贴图
不过可以发文本信息呢
比如:
e:\pytest>python ex44.py
python: can't open file 'ex44.py': [Errno 2] No such file or directory
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-6 11:53:34 | 显示全部楼层    本楼为最佳答案   
def geturl(url):
        jpglist = []
        for each1 in url:
                urlhtml = 'http://mzitu.92game.net'+each1
                sel1 = etree.HTML(requests.get(urlhtml).content)
                jpghtml = sel1.xpath('//div[@class="main-image"]/p/a/img/@src')
                jpglist.append(jpghtml)
                return jpglist
这段的return缩进位置不对
看代码你最终想打印出来图片列表,因为geturl(url)这个函数的缩进位置不对,返回不了正确的图片列表。把return语句放在循环外面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-6 16:47:05 | 显示全部楼层
chxchxkkk 发表于 2019-8-6 11:53
def geturl(url):
        jpglist = []
        for each1 in url:

谢谢  大哥 终于找到 了  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 02:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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