当前位置:   article > 正文

一分钟教会你如何用Python爬取图片,学到就是赚到!_python爬虫图片

python爬虫图片

使用Python做爬虫其实很简单,这里使用一个小案例来详细介绍Python爬虫的用法,借助Python工具爬取王者荣耀英雄人物头像图片,Python爬虫爬取网页图片可以分为四步:明确目的、发送请求、数据解析、保存数据,具体步骤如下,下面一起学习。
示例工具:anconda3.7
本文讲解内容:Python爬取图片
适用范围:网页解析、图片爬取

1. 明确目的

打开王者荣耀英雄介绍主页,该主页包含很多种英雄的头像图片,主页网址链接如下。添加链接描述

2. 发送请求

使用requests库发送请求,返回状态码显示为200,服务器连接正常。

import requests 
  u='https://pvp.qq.com/web201605/herolist.shtml' 
  response=requests.get(u) 
  print('状态码:{}'.format(response.status_code)) 
  if response.status_code != 200:
  pass else: print("服务器连接正常")<img src="https://pica.zhimg.com/v2-90c9e2103fcb9dd494c25a0e834976b4_b.jpg" data-caption="" data-size="normal" data-rawwidth="196" data-rawheight="64" data-original-token="v2-90c9e2103fcb9dd494c25a0e834976b4" class="content_image" width="196"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3. 数据解析

在数据解析之前,需要提前安装pyquery,pyquery库类似于Beautiful Soup库,初始化的时候,需要传入HTML文本来初始化一个PyQuery对象,它的初始化方式包括直接传入字符串,传入URL,传入文件名等等,这里传入URL,并且查找节点。

 #解析数据 
 
   from pyquery import PyQuery  
   doc=PyQuery(html) 
   items=doc('.herolist>li')#.items() 
   print(items)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
同时遍历,使用find函数查找子节点,遍历爬取图片URL和图片名。
  for item in items:
    url=item.find('img').attr('src')
    #print(url)
    urls='http:'+url
    name=item.find('a').text()
    #print(name)
    url_content=requests.get(urls).content
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4. 保存数据

最后保存数据,需要提前新建一个文件夹用于数据存储,同时,存储数据的代码需要写在for循环里面,不然只会保存一张图片。

 with open('C:/Users/尚天强/Desktop/王者荣耀picture/'+name+'.jpg','wb') as file:
     file.write(url_content)
     print("正在下载%s......%s"%(name,urls))
  • 1
  • 2
  • 3

同时加一个计时器,用于计时图片爬取的时长,这里显示图片爬取共计耗时7.03秒。

 import time 
     start=time.time()
     … 
     end=time.time() 
     print('图片爬取共计耗时{:.2f}秒'.format(end-start))
  • 1
  • 2
  • 3
  • 4
  • 5
爬取过程动态演示如下,运行过程很快。 以上我们成功将王者荣耀的英雄人物头像爬取下来,代码文件中有高清头像。 将代码进行封装,完整版代码如下,如果你也感兴趣的话可以自己实际运行试一试,爬取生成结果。
import time 
  start=time.time()  

  import requests 
  from pyquery import PyQuery  

  #确定目标 
  url="https://pvp.qq.com/web201605/herolist.shtml" 

  #发送请求 
  html=requests.get(url).content 
  #print(html) 

  #解析数据 
  doc=PyQuery(html) 
  items=doc('.herolist>li').items()
  #print(items) 

 for item in items:
 url=item.find('img').attr('src')
 #print(url)
 urls='http:'+url 
 name=item.find('a').text()
 #print(name)
 url_content=requests.get(urls).content

#保存数据 
 with open('C:/Users/尚天强/Desktop/王者荣耀picture/'+name+'.jpg','wb') as file:
 file.write(url_content)
 print("正在下载%s......%s"%(name,urls)) 

 print("下载完毕")  

 end=time.time() 
 print('图片爬取共计耗时{:.2f}秒'.format(end-start))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

总结一下,使用Python爬取数据一共分为四步:明确目的、发送请求、数据解析、保存数据,熟练掌握以上四个步骤,即可从网页爬取数据,数据形式不限于文本、数字、图片等,如果你也感兴趣爬虫知识,想更深层次地学习Python数据分析,不妨自己上手试试。

最后:

Python学习资料

如果你想学习Python帮助你实现自动化办公,或者准备学习Python或者正在学习,下面这些你应该能用得上,有需要可以领取。

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习
⑤历年互联网企业Python面试真题,复习时非常方便

文末有领取方式哦

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python课程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

在这里插入图片描述

三、Python实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

四、Python漫画教程

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
在这里插入图片描述

在这里插入图片描述

五、互联网企业面试真题

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码或者点击主页和文章下方的微信卡片获取领取方式,【保证100%免费】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/433939
推荐阅读
相关标签
  

闽ICP备14008679号