Python整活时间,如何一键获取写真图集?只需27行代码即可实现

x33g5p2x  于2022-04-29 转载在 Python  
字(1.5k)|赞(0)|评价(0)|浏览(533)

兄弟们,上一个系列大家多少有点不太喜欢,那今天上点不一样的。

来吧,直接整活~

先准备一下

首先咱们需要安装一下这两个第三方模块

  1. requests >>> # pip install requests
  2. parsel >>> # pip install parsel

不会安装的小伙伴,键盘按住win+r 在弹出来的运行框 输入cmd 按确定,然后弹出黑色的框框,即命令提示符窗口,输入上面的注释 ,然后按回车即可安装成功。

安装失败的话,看我首页置顶的几篇文章,有专门介绍安装模块的。

话说现在这么小的图片都有水印,真够影响体验的。。。

我们继续

实现步骤

第一步:找数据对应的链接地址
第二步:python代码发送指定地址的请求
第三步:数据解析(筛选 过滤咱们需要的数据)

解析了每一个相册地址之后

  1. a 创建每一个相册的文件夹
  2. b 请求每一个相册详情页
    (1) 发送请求
    (2) 解析数据 提取图片链接
    (3) 依次请求图片

第四步:保存数据

代码部分

  1. import requests
  2. import parsel # 解析数据
  3. import os
  4. for page in range(1, 12):
  5. response = requests.get(f'https://www.jdlingyu.com/tag/%e8%85%bf%e6%8e%a7/page/{page}')
  6. # <Response [200]>: 请求成功
  7. # 静态页面的网页源代码
  8. # 把静态页面的 字符串 变成可选的对象
  9. selector = parsel.Selector(response.text)
  10. # 3. 数据解析(筛选 过滤咱们需要的数据)
  11. # re: 可以直接提取网页字符串数据
  12. # css / xpath: 通过HTML标签进行提取
  13. lis = selector.xpath("//ul[@class='b2_gap ']/li")
  14. for li in lis:
  15. # text(): 提取标签的文本内容
  16. title = li.xpath('.//h2/a/text()').get()
  17. print(f'-------------正在爬取{title}-------------')
  18. # a 如果当前文件夹不存在 那么就新建一个
  19. if not os.path.exists('./img/'+title):
  20. os.mkdir('./img/'+title)
  21. # 每一个相册所在的 网页地址
  22. # 获取a标签属性内容 /@src
  23. href = li.xpath('.//h2/a/@href').get()
  24. # b 请求每一个相册详情页
  25. data_html = requests.get(href).text
  26. # 把字符串对象转变为 可选的selector对象
  27. selector_2 = parsel.Selector(data_html)
  28. img_p = selector_2.xpath('//div[@class="entry-content"]/p')
  29. for img in img_p:
  30. # (2) 解析数据 提取图片链接
  31. img_list = img_p.xpath('.//img/@src').getall()
  32. for img_1 in img_list:
  33. # content: 获取二进制数据 图片 视频 音频
  34. # 文本: text
  35. try:
  36. img_data = requests.get(img_1).content
  37. # 图片文件名
  38. except:
  39. continue
  40. img_name = img_1.split('/')[-1]
  41. with open(f'img\\{title}\\{img_name}', mode='wb') as f:
  42. f.write(img_data)
  43. print('下载完成:', img_name)

效果展示

这个分类总共是12页,我就不全部展示了,大家可以自己去试试!

相关文章