A Lucky 2021-05-07 07:10 采纳率: 80%
浏览 30

一直报错这一行有问题li_list=tree.xpath还报错表达式无效

import requests
from lxml import etree
import os
if __name__=='__main__':
    url='https://pic.netbian.com/4kmeinv/'
    headers = {
        'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Mobile Safari/537.36'
    }
    #page_text= requests.get(url=url, headers=headers).text
    #上面可以分两步写,第一先获取响应对象
    response=requests.get(url=url, headers=headers)
    # 第二将响应对象当中的响应数据获取,然后把响应数据设置成utf-8
    response.encoding= 'uft-8'
    page_text= response.text

# ----数据解析:src的属性值是图片url和alt的属性是图片名字
    tree=etree.HTML(page_text)
    # 实例化一个对象
    li_list = tree.xpath('//div [@class="slist"]/ul/li]')
    # xpath返回的数据是一个列表,所以返回给li_list这个列表

    # 创建一个文件夹
    if not os.path.exists('./picLibs'):
        os.mkdir('./picLibs')

    for li in li_list:
        img_src= 'http://pic.netbian.com'+li.xpath('./a/img/@src')[0]
     

        #获取图片的名称定义img_name.然后给图片加上后缀'.jpg的格式'
        img_name= li.xpath('./a/img/@src')[0]+'.jpg'
        # 通用处理中文乱码的解决方案
        img_name= img_name.encode('iso-8859-1').decode('gbk')

        # print(img_name, img_src)
        # 请求图片进行持久化存储
        img_data= requests.get(url=url, headers=headers)
        img_path='picLibs'+img_name
        with open(img_path, 'wb') as fp:
            fp.write(img_data)
            print(img_name, '下载成功')
  • 写回答

1条回答 默认 最新

  • 江天暮雪丨 2021-05-07 08:45
    关注

    是不是多写了一个 ] 

     li_list = tree.xpath('//div [@class="slist"]/ul/li]')
     li_list = tree.xpath('//div [@class="slist"]/ul/li')
    评论

报告相同问题?

悬赏问题

  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据