起因: 因为要做和图像识别有关的东西,需要很多的图片,但我这个人很懒,又不想自己动手找。于是乎,我就打起了爬虫的主意。我开始找网上的各种爬虫教程和一些经典案例,但是我没有找到一个即简单完整的爬虫程序。没办法,我只有自己动手啦。如果你和我一样,想快速学会爬虫,编写出易于理解、完整且简单的小爬,你可以继续往下看看。
准备工作:
1、爬取的网站:wallhaven:https://wallhaven.cc/ 【该网站的图片高清幽美、令人赞叹,两个字"极好"】
类似于下面这张图,是不是还不错?

2、涉及到的学习内容
编写语言:python 【附上官网教程】
python包:
(1)BeautifulSoup:BeautifulSoup4和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。
(2)requests:作为用户角色,请求页面。
分析爬取内容:
1、分析主页面
主界面可以使用搜索,若想筛选出有雾的图像,可直接在搜索框中查找"FOG"
跳转页面后观察规律,url = https://wallhaven.cc/search?q=FOG&page=%s"%(i)是这样的。q是查询的参数,page表示第几页。
2、分析源代码的形式
目的很明确,需要高清的图片,因此,需要点击对应的图片,跳转到高清的图片页面中,然后再提取高清图片。
3、获取代理对象
User-Agent:通过Headers找到。
下面通过具体的代码,来解释整个流程。

from bs4 import BeautifulSoup
import requests
#用户代理,作为用户的角色访问网站
gHeads = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36"
}
#整个for循环用于控制图片展示页面(第几页)
for i in range(5,20):url = "https://wallhaven.cc/search?q=FOG&page=%s"%(i)print(url)html = requests.get(url,headers=gHeads)#请求页面html = html.content#获取源码soup = BeautifulSoup(html, 'lxml')#对界面进行解析href_all = soup.find_all( 'a',{"class": "preview"})#找到对应的a,且其class=previewfor href in href_all:#打开高清图片的新页面href_url = href['href']#找到对应的href属性值#重复上述的源码获取和页面解析html4 = requests.get(href_url,headers=gHeads).contentsoup4 = BeautifulSoup(html4, 'lxml')img4 = soup4.find( 'img',{"id": "wallpaper"})#找到img标签,且id = wallpaperurlimg = img4['data-cfsrc'] #获取属性值#将图片下载到本地r = requests.get(urlimg, stream=True)#r是response响应对象,stream=true是以字节流的方式读取数据,同时用于确保数据不会直接全部下载到内存中,便于下一步用r.iter_content实现边下载边存储(因为数据太大可能会超时)。image_name = urlimg.split('/')[-1]#获取图片名with open('F:/Image/%s' % image_name, 'wb') as f:#Image文件必须存在;with as可以方便实现文件的打开和关闭,且容易处理异常for chunk in r.iter_content(chunk_size=128):#利用for循环,将响应对象response(r)中的数据信息 通过iter_content方法 依次读取大小为128字节的数据块(先下载到内存中,满128字节后存储到硬盘中,实现边下载边存储),直至数据读完为止。 f.write(chunk)print('Saved %s' % image_name)print("end.....................")   

部分结果展示:

上面的过程较为简单,建议小伙伴们先测试一下,看效果,然后一步一步来理解。


若是有不理解的地方,可以在下方留言,我看到后会及时回复的。有问题咱一起解决,共同进步。

如何用爬虫爬取精美的图片!相关推荐

  1. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  2. Java爬虫爬取wallhaven的图片

    Java爬虫爬取wallhaven的图片 参考文章:JAVA Jsoup爬取网页图片下载到本地 需要的jar包:jsuop wallhaven网站拒绝java程序访问,所以要伪装报头. 发送请求时 C ...

  3. python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩

    python + selenium +pyquery 爬虫  爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩 用到的库和源码下载地址 需要用到chromedriver  包含wi ...

  4. python爬虫爬取网页壁纸图片(《底特律:变人》)

    参考文章:https://www.cnblogs.com/franklv/p/6829387.html 爬虫爬取网址:http://www.gamersky.com/news/201804/10396 ...

  5. 用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)

    参考文章:https://www.cnblogs.com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只 ...

  6. 用Python实现爬虫爬取京东笔记本电脑图片

    最近需要从网上搜集一些数据,于是花了几个小时把爬虫学了一下.其实我在两年前的一个简单的站内搜索引擎的实现已经涉及到了简单的爬虫,不过那时候老想着偷懒,加上山大新闻网的设计又很好爬,所以当时写得很low ...

  7. 如何用python爬取e-hentai的图片

    前言 本来这是个正经的图片爬取教程,但是考虑到正经的教程一向是不会有人看的,所以干脆满足一下各位老绅士的心理,改成了E站的爬图教学. 事先声明,本博客本质上还是个爬虫教学,所以不会提供任何ehenta ...

  8. 利用Python爬虫爬取网页福利图片

    最近几天,学习了爬虫算法,通过参考书籍,写下自己简单爬虫项目: 爬取某福利网站的影片海报图片 环境:anaconda3.5+spyder3.2.6 目录 1.本节目标 2.准备工作 3.抓取分析 4. ...

  9. python唯美壁纸_用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)

    参考文章:https://www..com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只是很久之前学过 ...

最新文章

  1. 计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计
  2. 成都python工作-成都python就业
  3. 1.9 函数-C++编程模块
  4. 面试重点:设计模式(二)——创建模式
  5. python idle在哪_python安装包里idle在哪
  6. sb3转换exe_SB转exe或swf(sb3toSB2.rar
  7. Spring Tools Suite (STS)的下载及安装
  8. vue2知识点:数据代理
  9. 什么是责任心?如何提高责任心?HR人才测评
  10. 从申请到调用:全国快递物流查询 API 使用教程
  11. 查看PostgreSQL数据库Extension
  12. hive 元数据 解释
  13. 异形高清中英字幕资源
  14. 【51nod】2059 上台阶 easy
  15. 水滴舆情关于山西体育一周舆情总结
  16. 近源社工-校内网渗透测试
  17. 为什么要早点进入IT行业?
  18. 学习JVM有什么实际意义呢?
  19. STM32串口通信的 USART_ClearFlag(USART1,USART_FLAG_TC); 添加后程序出现bug;( USART_ClearFlag(USART_TypeDef* USART)
  20. 目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

热门文章

  1. 旧衣服上门回收小程序开发,方便用户断舍离
  2. 1-小白学习html-20.27
  3. 系统工程理论与实践投稿经验_畜牧期刊发表服务最快最好网站_【100%录用和发表、万佳论文网】...
  4. 山武AVP102-H阀门定位器
  5. 基于ssm工商学院办公用品管理信息系统设计与实现-计算机毕业设计源码+LW文档
  6. python找不到scripts文件夹_Python目录下中没有Script文件夹
  7. 【信号处理】基于Matlab实现拉曼光谱的尖峰去除
  8. C++头文件和std命名空间(精辟)
  9. 毕业倒计时开始了,你的论文答辩PPT准备好了吗?
  10. 职称计算机教程pdf,副高级职称计算机考试必考模块.pdf