我用Python爬取了五千张美女图壁纸,每天一张忘记初恋!

五包辣条! 2021-10-28 19:10:43
Python 五千 取了 美女图 千张

大家好,我是辣条,这是我爬虫系列的第26篇。

爱美之心人皆有之,正所谓窈窕淑女君子好逑,美好敲代码的一天从好看的桌面壁纸开始,好看的桌面壁纸从美女壁纸开始。今天给大家带来福利啦,爬取美女图片作为桌面壁纸!【防止有人捶我打擦边球,都是正经的图片,自己想歪了是你的事,仅供学习交流】

采集目标

网址:36壁纸

image.png

展示效果

工具使用

开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:requests, lxml

项目思路解析

获取网页数据首先需要分辨数据是静态数据还是动态数据检验方法在网页源代码搜索你需要数据的关键字,要是有的话就是静态数据,没有的话就是动态数据,当前网页数据加载方式是通过url换页,通过循环的方式加载页面数据,使用requests发送网络请求获取当前网页数据,通过xpath语法定位到网页链接请求

image.png

记住在这里提取的数据是html链接我们要的一大批数据在详情页面

image.png

提取出当前网页所以的详情页面链接,xpath提取的数据为列表,循环取出每个数据依次发送请求

image.png

我们要获取的图片都在这里按照通样的方法使用xpath方式进行定位获取到所以详细图片的位置

image.png

image.png

获取到全部图片地址,这个图片需要注意的是是缩略图我们需要找出缩略图和大图url的区别

https://pic.3gbizhi.com/2021/0922/20210922094032743.jpg
https://pic.3gbizhi.com/2021/0922/thumb_200_0_20210922094032743.jpg

缩略图比大图多了thumb_200_0_ 进行分割在进行拼接,对图片的发送网络请求获取到详细的图片数据,在进行保存

简易源码分享

import requests
from lxml import etree
​
headers = {
​
   'Cookie': 'Hm_lvt_c8263f264e5db13b29b03baeb1840f60=1632291839,1632373348; Hm_lpvt_c8263f264e5db13b29b03baeb1840f60=1632373697',
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'}
​
for i in range(2, 3):
   url = f'https://www.3gbizhi.com/meinv/xgmn_{i}.html'
   response = requests.get(url, headers=headers)
   html = etree.HTML(response.text)
   href_list = html.xpath('//div[@class="contlistw mtw"]//ul[@class="cl"]/li/a/@href')
   title_list = html.xpath('//div[@class="contlistw mtw"]//ul[@class="cl"]/li/a/@title')
   for href, title in zip(href_list, title_list):
       res = requests.get(href, headers=headers)
       html_data = etree.HTML(res.text)
       img_url_list = html_data.xpath('//div[@class="picimglist pos"]/ul/li/a/img/@src')
       print(img_url_list)
       num = 0
       for img_url in img_url_list:
           img_url = ''.join(img_url.split('thumb_200_0_'))
           result = requests.get(img_url, headers=headers).content
           with open('妹子/' + title + str(num) + '.jpg', 'wb')as f:
               f.write(result)
           num += 1
           print(f'正在下载{title}第{num}张!!!!')

行业资料:添加即可领取PPT模板、简历模板、行业经典书籍PDF。
面试题库:历年经典,热乎的大厂面试真题,持续更新中,添加获取。
学习资料:含Python、爬虫、数据分析、算法等学习视频和文档,添加获取
交流加群:大佬指点迷津,你的问题往往有人遇到过,技术互助交流。

领取

版权声明
本文为[五包辣条!]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ai19970205/article/details/120434440

  1. Python - 字符串作为文件
  2. Python - 重新格式化段落
  3. 4.Python-常用语句
  4. 【Python】基于FastAPI的Restful规范实践
  5. 【Python】FastAPI脚手架:规范FastAPI后端接口项目开发
  6. 【Python】单元测试实践内部指南
  7. Django开发中使用Cache缓存提升10倍效率
  8. python如何重复执行程序命令而不是一次退出
  9. python 编写程序题使用for循环
  10. 一道简单的python作业题,就是不能运行
  11. 使用python回答,望有人来帮
  12. 用python插入日期格式到mysql数据库中,一直运行不了。
  13. 关于以下Python问题如何解决
  14. Use Python to help the financial sister solve the PDF splitting. The sister said it was great...
  15. Comment résoudre les problèmes Python suivants
  16. 如何使用python建立列表?新手入门
  17. python 3d画图库matplotlib,第一次用
  18. python 3d畫圖庫matplotlib,第一次用
  19. Python 3D painting Library matplotlib, utilisé pour la première fois
  20. Comment créer une liste en utilisant python? Débutant
  21. python定义列表 新手入门级别
  22. Liste de définition Python débutant
  23. 如何用Python实现,急!!xdm
  24. 如何用Python實現,急!!xdm
  25. Comment implémenter en python, urgent!! Xdm
  26. 新猿木子李:0基础学python培训教程 Python操作Redis之hash类型
  27. python导入模块变量后,打印的值固定不变了,大老们怎么破。
  28. Why is my rust slower than Python!
  29. 用Python给喜欢的女孩写一个办公小工具,她说棒极了!
  30. python中\t是空一个tab,那这个1.2后面怎么没空格?
  31. Il y a un onglet vide en python, alors pourquoi n'y a - t - il pas d'espace après ce 1.2?
  32. 关于python中pygame.display.set_mode()的一点小问题
  33. 猜我能否用Python编程抢到茅台?已经全部开源到GitHub了
  34. python数据分析numpy 补充短试题
  35. 2W + word long article, an article on literacy python, numpy and pandas, recommended collection!
  36. Python培训-自动化运维常用库
  37. On the magical usage and principle of weak reference in Python
  38. Formation python - bibliothèques d'exploitation et de maintenance automatisées
  39. Python培训-HTTP与HTTPS之间的区别
  40. Python有哪些高级特性?
  41. Python代码阅读(第25篇):将多行字符串拆分成列表
  42. Quelles sont les fonctionnalités avancées de python?
  43. 运用python程序编写下面的的代码
  44. Python代码阅读(第25篇):将多行字符串拆分成列表
  45. 初学者 可以帮我看一下为什么Python程序运行不了吗
  46. 初學者 可以幫我看一下為什麼Python程序運行不了嗎
  47. Python代碼閱讀(第25篇):將多行字符串拆分成列錶
  48. Les débutants peuvent - ils m'aider à voir pourquoi le programme Python ne fonctionne pas?
  49. Lecture du Code Python (article 25): diviser les chaînes multilignes en listes
  50. Écrivez le code suivant en utilisant le programme Python
  51. Python exercises
  52. Python exercises
  53. Python exercises
  54. 随机试验数据函数统计分析python
  55. Python after class exercises (junior / October 11, 2021)
  56. python使用cv2.imread()读取图片失败
  57. python使用cv2.imread()讀取圖片失敗
  58. Python n'a pas lu l'image en utilisant cv2.imread ()
  59. Error debugging is accurate to lines, match case pattern matching... The official version of Python 3.10 is really friendly
  60. 100 basic Python interview questions Part II (41-60)