一分钟教会你如何用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"/>

3. 数据解析

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

 #解析数据 

   from pyquery import PyQuery  
   doc=PyQuery(html) 
   items=doc('.herolist>li')#.items() 
   print(items)
同时遍历,使用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

4. 保存数据

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

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

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

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

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据爬取是指使用Python编程语言来获取互联网上的数据。通过编写爬虫程序,可以自动化地从网页上提取所需的信息,并将其保存到本地或进行进一步的处理和分析。 使用Python进行数据爬取的步骤如下: 1. 安装必要的库:首先需要安装Python的第三方库,如requests和BeautifulSoup。这些库提供了简便的方法来发送HTTP请求和解析HTML页面中的数据。 2. 发送HTTP请求:使用requests库发送HTTP请求,从目标网站获取数据。可以发送GET请求获取页面内容,也可以发送POST请求提交表单数据。 3. 解析HTML页面:使用BeautifulSoup库解析HTML页面,提取所需的数据。BeautifulSoup提供了强大的功能,可以根据标签、类名、特定属性等来查找和提取数据。 4. 数据处理和存储:对获取到的数据进行处理和清洗,可以使用Python的字符串处理函数和正则表达式。然后,可以将数据保存到本地文件、数据库或其他存储介质中。 5. 循环爬取:如果需要获取大量数据或多个页面的数据,可以使用循环结构来自动化爬取过程。可以根据需要设置循环次数或条件,以获取所需的全部数据。 6. 反爬虫处理:在进行数据爬取时,需要注意网站的反爬虫机制。可以设置适当的请求头信息、使用代理IP、降低访问频率等来规避反爬虫限制。 通过掌握以上六个步骤,使用Python进行数据爬取就变得相对简单了。可以根据具体的需求和网站特点,灵活运用相关技术和工具,实现高效的数据爬取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [如何用六步教会你使用python爬虫爬取数据](https://blog.csdn.net/m0_59162248/article/details/129156776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值