爬取图片的python小爬虫

python爬虫爬取图片

from lxml import etree

发送请求 获取数据

import requests

‘’’ 面向对象设计模式,保证代码规范 ‘’’
class Spider(object):
def init(self):
self.headers = { # 反反爬虫
# ‘Connection’: ‘close’,
“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36”,
“Referer”:“https://www.mzitu.com/tag/ugirls/”,
}
self.pages = [1,2,3]
pass

def start_request(self):
    for i in range(1,4):
        # 1.获取整站数据
        # https://www.mzitu.com/page/2/
        response = requests.get('https://www.mzitu.com/page/'+str(i))  # 请求
        # print(response.text)  # 请求得到的一个 文本内容
        html = etree.HTML(response.text)
        # 2.获取我们想要的数据 图片标题、图片链接
        src_list = html.xpath('//img[@class="lazy"]/@data-original')  # 图片地址,结果到一个列
        alt_list = html.xpath('//img[@class="lazy"]/@alt')  # 图片名称,结果是一个列

        # 一个链接,一个名称 打包
        for src, alt in zip(src_list, alt_list):
            self.down_img(src, alt)
            pass
        '''
        <img class="lazy" src="https://i.meizitu.net/thumbs/2019/02/170016_17b01_236.jpg" 
        data-original="https://i.meizitu.net/thumbs/2019/02/170016_17b01_236.jpg" 
        alt="春心已荡漾 性感美女心妍小公主热情似火霸气侧漏" width="236" height="354" style="display: inline;">
        '''

    pass

'''
Python3中两种数据模式
Bytes:二进制;(图片、音频、视频等...)
Unicode:str
'''
def down_img(self, src, alt):
    # 3.图片下载,图片文件名定义  下载requests.get()
    content = requests.get(src, headers = self.headers).content  #  .content 得到一个二进制文件
    img_name = alt + ".jpg"  # 定义图片名称
    print("正在抓取图片:" + img_name)
    # 4.图片保存
    with open(img_name, "wb") as f:  # wb 二进制写入
        f.write(content)
        pass
    pass
pass

spider = Spider()
spider.start_request()

#pip install requests -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
#pip install lxml -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

猜你喜欢

转载自blog.csdn.net/weixin_44153831/article/details/90173521