93破解-安卓破解-原创软件-技术资源分享-www.93pojie.com

 找回密码
立即注册
查看: 1296|回复: 71

[编程学习] 初学者更简便的爬取保存图片

  [复制链接]
发表于 2022-9-15 15:26:51 | 显示全部楼层 |阅读模式
最近在学习python,刚接触爬虫章节,在论坛看了不少教程,确实很有帮助,
但是有些文章中都用到了re正则的方式去获取页面中的内容,对于像我这样的新手菜鸟来说,不太友好,
于是,就结合所学实现爬取图片的功能,有不对的,还请大佬多多指教!
功能:指定起始页、终止页爬取、保存图片。
080650pzz1ssoz12s1moy1.jpg
  1. import os
  2. import time
  3. from urllib import request
  4. from bs4 import BeautifulSoup
  5.   
  6. # 开始页码
  7. pstart = 1
  8. # 结束页码
  9. pend = 2
  10.   
  11. # 获取内容
  12. def html_parse(url, headers):
  13.     time.sleep(1)
  14.     resp = request.Request(url=url, headers=headers)
  15.     res = request.urlopen(resp)
  16.     html = res.read().decode("utf-8")
  17.     soup = BeautifulSoup(html, "html.parser")
  18.     return soup
  19.   
  20. # header
  21. headers = {
  22.     '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'
  23. }
  24.   
  25.   
  26. for p in range(pend-pstart+1):
  27.     # 次数
  28.     if pstart > pend:
  29.         break
  30.   
  31.     print("开始爬取第%s页" % pstart)
  32.   
  33.     list_url = "https://www.vmgirls.com/pure/page/%s/" % pstart
  34.     page = html_parse(list_url, headers)
  35.     alist = page.find("div", attrs={"class": "list-grouped"}).find_all("a", attrs={"class": "media-content"})
  36.   
  37.     for i, a in enumerate(alist, 1):
  38.         url = a.get("href")
  39.         child = html_parse(url, headers)
  40.         title = child.find("h1", attrs={"class": "post-title"}).text
  41.         imgs = child.find("div", attrs={"class": "post-content"}).find_all("img")
  42.   
  43.         print("第%s页," % pstart, "第%s" % i, "套图:", title)
  44.         arimg = "D:\\图片\\vmgirls\" + title
  45.   
  46.         if not os.path.isdir(arimg):
  47.             os.makedirs(arimg)
  48.   
  49.         for n, img in enumerate(imgs, 1):
  50.             pic_name = arimg + "\" + title + "_" + str(n) + ".jpg"
  51.             # pic_name = (title + "_" + str(n) + ".jpg")
  52.             request.urlretrieve(img.get("src"), pic_name)
  53.   
  54.     pstart += 1
  55.   
  56. print("全部爬取完毕")
复制代码



回复

使用道具 举报

发表于 2022-9-19 09:01:06 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

发表于 2022-9-21 22:42:29 | 显示全部楼层
感谢楼主分享!93有你更精彩!
回复

使用道具 举报

发表于 2022-9-24 10:16:59 | 显示全部楼层
顶帖是一种态度,也是一种尊重。
回复

使用道具 举报

发表于 2022-10-15 03:40:55 | 显示全部楼层
谢谢大佬
回复

使用道具 举报

发表于 2022-10-18 19:23:19 | 显示全部楼层
很给力,93论坛有你更精彩
回复

使用道具 举报

发表于 2022-10-30 02:24:27 | 显示全部楼层
谢谢楼主热心的分享,感谢93有你
回复

使用道具 举报

发表于 2022-11-6 15:20:50 | 显示全部楼层
已收下,谢谢了
回复

使用道具 举报

发表于 2022-11-6 16:24:01 | 显示全部楼层
好东西收下了
回复

使用道具 举报

发表于 2022-11-8 12:11:51 | 显示全部楼层
下载试试看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明:
93破解论坛所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

E-Mail

RRS订阅|小黑屋|93破解论坛

GMT+8, 2024-4-26 08:32

Powered by Discuz!

Copyright © 2021.

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