鱼C论坛

 找回密码
 立即注册
查看: 1372|回复: 2

为什么 会出现 错误 帮忙看一下 谢谢

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

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

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

x
这是代码
  1. import requests
  2. import re
  3. from lxml import etree
  4. import os

  5. def download_pics(url):
  6.         response = requests.get(url,headers=headers)
  7.         base_link = etree.HTML(response.text).xpath('//div[@class="main-image"]//img/@src')[0][0:-6]
  8.         page_info = etree.HTML(response.text).xpath('//div[@class="pagenavi"]//span/text()')
  9.         max_page = int(page_info[-2])
  10.         for i in range(1,max_page+1):
  11.                 page = str(i).zfill(2)
  12.                 download_link = base_link+str(page)+'.jpg'
  13.                 response = requests.get(download_link)
  14.                 pic_name = download_link[-9:-4]
  15.                 print('目前第{}套妹子,共{}张  正在下载第{} 张图片......'.format (list_cnt,max_page,i))
  16.                 with open(save_path+'\\'+pic_name+'.jpg','wb') as f:
  17.                         f.write(response.content)

  18. def get_list(url):
  19.         global list_cnt,save_path
  20.         list_cnt = 1
  21.         response = requests.get(url,headers=headers)
  22.         p = r'<a href="(https://www.mzitu.com/\d+)" target="_blank">'
  23.         list_pool = re.findall(p,response.text)
  24.         for li in list_pool:
  25.                 save_path = '美女图\\EP'+str(list_cnt).zfill(3)
  26.                 if not os.path.exists(save_path):
  27.                         os.mkdir(save_path)
  28.                 download_pics(url)
  29.                 list_cnt+=1

  30. def main():
  31.         if not os.path.exists('美女图'):
  32.                 os.mkdir('美女图')
  33.         os.startfile('美女图')
  34.         get_list(url)

  35. if __name__=="__main__":
  36.         url = 'https://www.mzitu.com/'
  37.         headers = {'user-agent': 'Mozilla/5.0'}
  38.         main()
复制代码

出现错误  Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\新建文本文档 (3).py", line 42, in <module>
    main()
  File "C:\Users\Administrator\Desktop\新建文本文档 (3).py", line 37, in main
    get_list(url)
  File "C:\Users\Administrator\Desktop\新建文本文档 (3).py", line 30, in get_list
    download_pics(url)
  File "C:\Users\Administrator\Desktop\新建文本文档 (3).py", line 8, in download_pics
    base_link = etree.HTML(response.text).xpath('//div[@class="main-image"]//img/@src')[0][0:-6]
IndexError: list index out of range
[Finished in 1.6s]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-10 21:42:32 | 显示全部楼层
你看你这两句类名是不是写错了

  1. base_link = etree.HTML(response.text).xpath('//div[@class="main-image"]//img/@src')[0][0:-6]
  2. page_info = etree.HTML(response.text).xpath('//div[@class="pagenavi"]//span/text()')
复制代码


用print(response.text)可以查看网页的html,这里面找不到你指定的main-image和pagenavi这两个类
lxml库没怎么用过,不知道对不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-10 23:05:52 | 显示全部楼层
  1. base_link = etree.HTML(response.text).xpath('//div[@class="main-image"]//img/@src')[0][0:-6]
  2. base_link = etree.HTML(response.text).xpath('//div[@class="main-image"]//img/@src')
  3. print(base_link)
  4. print(type(base_link ))
复制代码

去掉后面的截取,和[0],先确认获得的是什么对象
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 13:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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