python 爬虫 美桌网 50行代码爬取明星写真摄影图片

好几天没更图片爬虫了,今天就简单的趴一下美桌网:
运行效果如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中,每位明星单独一个文件夹,写真的册也是单独一个文件夹,非常的银杏

源码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/12/15 18:14
# @Author  : huni
# @File    : 美桌网.py
# @Software: PyCharm
import requests
from lxml import etree
import os
if __name__ == '__main__':
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'
    }
    url = 'http://www.win4000.com/mt/star.html'
    resp = requests.get(url=url,headers=headers).text
    tree = etree.HTML(resp)
    li_list = tree.xpath('/html/body/div[4]/div/div[2]/ul/li')
    for li in li_list:
        href = li.xpath('./a/@href')[0]
        resp1 = requests.get(url=href,headers=headers).text
        tree1 = etree.HTML(resp1)
        href1_list = list(set(tree1.xpath('/html/body/div[4]/div/div[3]/div[1]/div[2]/div//@href')))
        href1_list.append(href)
        title = tree1.xpath('/html/head/title/text()')[0]
        m_path = './明星图片'
        if not os.path.exists(m_path):
            os.mkdir(m_path)
        title_path = m_path + f'/{title}'
        if not os.path.exists(title_path):
            os.mkdir(title_path)
        for href1 in href1_list:
            resp2 = requests.get(url=href1,headers=headers).text
            tree2 = etree.HTML(resp2)
            href2_list = tree2.xpath('/html/body/div[4]/div/div[3]/div[1]/div[1]/div[2]/div/div/ul//@href')
            for href2 in href2_list:
                resp3 = requests.get(url=href2,headers=headers).text
                tree3 = etree.HTML(resp3)
                page_num = int(tree3.xpath('/html/body/div[4]/div/div[2]/div/div[1]/div[1]/em/text()')[0])
                name = tree3.xpath('/html/head/title/text()')[0]
                name_path = title_path + f'/{name}'
                if not os.path.exists(name_path):
                    os.mkdir(name_path)
                for i in range(1,page_num+1):
                    every_href = href2.replace('.html',f'_{i}.html')
                    resp4 = requests.get(url=every_href,headers=headers).text
                    tree4 = etree.HTML(resp4)
                    src = tree4.xpath('//*[@id="pic-meinv"]/a/img/@src')[0]
                    jpg_data = requests.get(url=src,headers=headers).content
                    jpg_name = src.split('/')[-1]
                    jpg_path = name_path + f'/{jpg_name}'
                    with open(jpg_path,'wb') as fp:
                        fp.write(jpg_data)
                        print(jpg_name,'下载完成')


单线程如此,多线程内容还可以参考我之前的博客

好了,今天就码到这里来,如果各位看官觉得不错,可以多多投喂小编哟

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值