批量爬取妹子图集

这两天刚刚学了正则表达式现在来练练手啦!!(大佬们请飞过)
思路:
首先观察网址链接每翻页的规律,获取每一页(这里叫他总页面)。
总页面上有很多图集,
然后我们要通过总页面获取每一个图集的第一页链接,如图:
如图
上面就是我们看到总页面的每一个图集的第一个页面的链接,我们要想办法用正则表达式先提取出来。

进入这些链接的某一个就是具体的图片页面,然后在这个页面中提取图片的链接进行保存并翻页,这样就完成了一个系列的图片爬取,如图:
(网页上的图片链接)爬取这个链接就能保存这个图片了。
如图
废话不多说,开代码!!!

import requests
import re

headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36",
        "referer": "https://www.mzitu.com/xinggan/"
}

root = "F://nnn//pic_"

urls = ["https://www.mzitu.com/page/{}".format(i) for i in range(1,4)]
#爬取前三个页面的所有图集
k = 1#图片序号
for url in urls:#遍历总页面链接
    r = requests.get(url, headers = headers)#获得总页面,总页面上有很多图集
    big = re.findall('<span><a href="(.*?)" target="_blank">', r.text)
    #从总页面获取大页面(图集第一页)的所有链接
    for small in big:#遍历所有大页面
        for j in range(1,4):#遍历所有小页面
            url1 = small + '/' + str(j)#每个小页面的链接
            s = requests.get(url1, headers = headers)#获取小页面
            photos_url = re.findall('<img src="(.*?)" alt', s.text)#获得小页面的图片链接
            for photo_url in photos_url:
                photo_html = requests.get(photo_url, headers = headers)#获得小页面图片信息
                with open(root + str(k) + ".jpg","wb") as f:
                    f.write(photo_html.content)
                    k = k + 1#下载的图片编号


下面是结果:
如图
可以看到图片都被保存到文件夹中,因为图片内容的问题,图片就不打开了

猜你喜欢

转载自blog.csdn.net/weixin_43901998/article/details/87865433