吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1856|回复: 13
收起左侧

[Python 转载] 初学者更简便的爬取保存图片

[复制链接]
okij12589 发表于 2022-9-14 18:13
最近在学习python,刚接触爬虫章节,在论坛看了不少教程,确实很有帮助,
但是有些文章中都用到了re正则的方式去获取页面中的内容,对于像我这样的新手菜鸟来说,不太友好,
于是,就结合所学实现爬取图片的功能,有不对的,还请大佬多多指教!
功能:指定起始页、终止页爬取、保存图片。

1.jpg

[Python] 纯文本查看 复制代码
import os
import time
from urllib import request
from bs4 import BeautifulSoup

# 开始页码
pstart = 1
# 结束页码
pend = 2

# 获取内容
def html_parse(url, headers):
    time.sleep(1)
    resp = request.Request(url=url, headers=headers)
    res = request.urlopen(resp)
    html = res.read().decode("utf-8")
    soup = BeautifulSoup(html, "html.parser")
    return soup

# header
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 Edg/91.0.864.59'
}


for p in range(pend-pstart+1):
    # 次数
    if pstart > pend:
        break

    print("开始爬取第%s页" % pstart)

    list_url = "https://www.vmgirls.com/pure/page/%s/" % pstart
    page = html_parse(list_url, headers)
    alist = page.find("div", attrs={"class": "list-grouped"}).find_all("a", attrs={"class": "media-content"})

    for i, a in enumerate(alist, 1):
        url = a.get("href")
        child = html_parse(url, headers)
        title = child.find("h1", attrs={"class": "post-title"}).text
        imgs = child.find("div", attrs={"class": "post-content"}).find_all("img")

        print("第%s页," % pstart, "第%s" % i, "套图:", title)
        arimg = "D:\\图片\\vmgirls\\" + title

        if not os.path.isdir(arimg):
            os.makedirs(arimg)

        for n, img in enumerate(imgs, 1):
            pic_name = arimg + "\\" + title + "_" + str(n) + ".jpg"
            # pic_name = (title + "_" + str(n) + ".jpg")
            request.urlretrieve(img.get("src"), pic_name)

    pstart += 1

print("全部爬取完毕")

免费评分

参与人数 2吾爱币 +1 热心值 +1 收起 理由
lr23653141 + 1 我很赞同!
weidechan + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a446489393 发表于 2022-9-14 18:17
学习了,我在学习Node.js
erui 发表于 2022-9-14 18:56
paomianhaochi 发表于 2022-9-14 19:09
双眼皮的微笑 发表于 2022-9-14 19:44
这种方法应该只能拿到服务器渲染的页面吧,客户端渲染拿不到吧
18895411830 发表于 2022-9-14 19:47
支持一下
emptynullnill 发表于 2022-9-14 20:03
对于现在流行的单页估计不行了。另外,正则一下子匹配感觉更快
XiaoZouYu 发表于 2022-9-14 21:26
楼主厉害,学习了
MasterPolymath 发表于 2022-9-14 21:54
是汤音璇
Sealsclerk 发表于 2022-9-14 22:29
最后出来的命名都是jpg吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 22:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表