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, '下载成功')
是不是多写了一个 ]
li_list = tree.xpath('//div [@class="slist"]/ul/li]')
li_list = tree.xpath('//div [@class="slist"]/ul/li')