天天看点

Python爬虫练习-Xpath解析图片爬取

import os
import requests
from lxml import etree

if __name__ == '__main__':
    # UA伪装
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.70 Safari/537.36'
    }
    # 指定url
    url = 'https://pic.netbian.com/4kmeinv/'
    # 发起请求
    response = requests.get(url=url, headers=headers)
    # 手动设置响应数据的编码格式
    # response.encoding = 'utf-8'
    page_text = response.text
    # xpath解析标签
    tree = etree.HTML(page_text)
    div_list = tree.xpath('//div[@class="slist"]//li')
    # 判断文件夹
    if not os.path.exists('./img'):
        os.mkdir('./img')
    for div in div_list:
        # 解析获取图片地址
        img_src = 'https://pic.netbian.com/' + div.xpath('./a/img/@src')[0]
        img_alt = div.xpath('./a/b/text()')[0] + '.jpg'
        # 通用处理中文乱码的解决方案
        img_alt = img_alt.encode('iso-8859-1').decode('gbk')
        # print(img_alt, img_src)
        # 发起请求
        page_img = requests.get(url=img_src, headers=headers).content
        # 图片路径
        img_path = 'img/' + img_alt
        # 保存
        with open(img_path, 'wb') as fp:
            fp.write(page_img)
            print(img_alt, "--下载成功--")
           

ps:注意中文乱码情况