Python抓取妹子图,内含福利

目标抓取全站妹子封面图片全部爬下来以图片标题命名
  1. 分析网页数据结构

     

     

    //upload-images.jianshu.io/upload_images/12192974-4c050de40bde7c84.png

    妹子图首页

  2. 接下来找张图片右击点击检查

     

     

    //upload-images.jianshu.io/upload_images/12192974-41a4f57e73ba6042.png

    想要数据

  3. 拿到图片链接直接用浏览器可以访问,但是程序下载有反爬虫,图片直接下载不了需要加请求头部信息

     

    //upload-images.jianshu.io/upload_images/12192974-242e8b2708132c59.png

     


    先上手代码试试!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

import requests

from lxml import etree

 

 

# 设计模式 --》面向对象编程

class Spider(object):

    def __init__(self):

        # 反反爬虫措施,加请求头部信息

        self.headers = {

            "User-Agent""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",

            "Referer""https://www.mzitu.com/xinggan/"

        }

 

    def start_request(self):

        # 1. 获取整体网页的数据 requests

        for in range(1204):

            print("==========正在抓取%s页==========" % i)

            response = requests.get("https://www.mzitu.com/page/"+ str(i) + "/", headers=self.headers)

            html = etree.HTML(response.content.decode())

            self.xpath_data(html)

 

    def xpath_data(self, html):

        # 2. 抽取想要的数据 标题 图片 xpath

        src_list = html.xpath('//ul[@id="pins"]/li/a/img/@data-original')

        alt_list = html.xpath('//ul[@id="pins"]/li/a/img/@alt')

        for src, alt in zip(src_list, alt_list):

            file_name = alt + ".jpg"

            response = requests.get(src, headers=self.headers)

            print("正在抓取图片:" + file_name)

            # 3. 存储数据 jpg with open

            try:

                with open(file_name, "wb") as f:

                    f.write(response.content)

            except:

                print("==========文件名有误!==========")

 

 

spider = Spider()

spider.start_request()

  

哎!好像没问题!

 

 

//upload-images.jianshu.io/upload_images/12192974-49d18a7bdb58b843.png

运行中

 

//upload-images.jianshu.io/upload_images/12192974-0d9e97b5b7131dde.png

运行结果

同学们,都把裤子给我穿上!好好学习!

 

https://img2018.cnblogs.com/blog/1055317/201907/1055317-20190708173157794-748414292.png

 

教程已出,但是可能有很多网友不会使用

大家有任何问题可以扫描二维码关注公众号,添加我的微信

我会第一时间为大家解答

已邀请:

要回复问题请先登录注册