查看: 466|回复: 3

用python爬取美女图网图片

[复制链接]
发表于 2021-11-22 10:44 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

[mw_shl_code=python,true]import requests
from bs4 import BeautifulSoup
import re
import os

headers = {"referer": "https://www.mzitu.com/",
           "user-agent": "Mozilla/5.0 (Windows NT 10.0; "
                         "Win64; x64) AppleWebKit/537.36 "
                         "(KHTML, like Gecko) Chrome/95.0.4638.54 "
                         "Safari/537.36 Edg/95.0.1020.40"}
def getHtml(url, headers=headers):
    try:
        r = requests.get(url, headers=headers)
        r.raise_for_status()
        r.encoding ="utf-8"
        return r
    except BaseException:
        print("获取失败")

def parserHtml(url):
    herflist = []
    r = getHtml(url)
    soup = BeautifulSoup(r.text,"html.parser")
    for herf in (i.find("a").attrs["href"] for i in soup.find("ul",id="pins")("li")):
        respon = getHtml(herf)
        n = re.compile(r"<span class='dots'>…</span><a href='.*?'><span>(?P<num>\d+)</span>")
        num = int(n.search(respon.text).group("num"))
        herflist.append((herf,num))
        respon.close()
    r.close()
    return herflist

def downLoad(herf,num):
    for i in range(num):
        i+= 1
        url = herf+"/"+str(i)
        r = getHtml(url)
        soup = BeautifulSoup(r.text,"html.parser")
        if i == 1:
            title = soup.find("title").string.split(sep="-")[0].strip()
            os.mkdir("D:/学习/爬虫/第二章/图片/"+title)
        img = soup.find("img","blur").attrs["src"]
        name = img.split(sep="/")[-1]
        picture = getHtml(img)
        with open("图片/"+title+"/"+name,"wb") as f:
            f.write(picture.content)
        print(title+name+"下载完毕")
        r.close()
        picture.close()

def main():
    url = "https://www.mzitu.com"
    herflist = parserHtml(url)
    for herf,num in herflist:
        downLoad(herf,num)

main()[/mw_shl_code]
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2021-11-22 11:36 来自手机 | 显示全部楼层
感谢大佬分享,大佬666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-11-22 15:00 | 显示全部楼层

感谢大佬分享,大佬666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-11-22 19:26 来自手机 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部