![af299a6f3cbc1a393412c41a8031e0d6.png](https://img-blog.csdnimg.cn/img_convert/af299a6f3cbc1a393412c41a8031e0d6.png)
requests库响应对象的属性:
resp.text 返回的是Unicode型的数据。(文本)
resp.content 返回的是bytes型也就是二进制的数据。(图片、文件)
resp.json() 返回的是json格式数据
下面的程序涉及:
1、编码;2、xpath;3、建立文件夹;4、保存图片
程序代码:
import requestsfrom lxml import etreeimport osheaders = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', }if __name__ == "__main__": # 获取页面源码 url = 'http://pic.netbian.com/4kbeijing/' response = requests.get(url=url, headers=headers) #手动设定响应数据的编码格式 response.encoding='utf-8' page_text = response.text # 数据解析 tree = etree.HTML(page_text) li_list = tree.xpath('//*[@id="main"]/div[3]/ul/li') #将li对象列表赋值给li_list变量 print(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 = li.xpath('./a/img/@alt')[0]+'.jpg' # 拼接图片文件名 img_name = img_name.encode('iso-8859-1').decode('gbk') #通用处理中文乱码的方法 #print(img_name,img_src) # 持久化保存图片 img_data = requests.get(url=img_src, headers=headers).content img_path = './piclibs/'+img_name with open(img_path, 'wb') as fp: fp.write(img_data) print(img_name, '下载完成!')