使用Beautifulsoup爬取摄图网图片

     本人python小菜鸟一枚(可能连菜鸟也算不上,哈哈!)最近在学爬虫,在这里记录一些随笔,希望和大家一起分享,愿和大家一起成长!

      Beautifulsoup作为一个强大的解析库,它借助网页的结构和属性等特征来解析网页。有了它,我们可以不用再去写一些复杂的正则表达式,只需要简单的几天语句,就可以完成网页中的某个元素的提取,话不多说,下面以实例来进行说明。

      首先我们选择要爬去的网站:http://699pic.com/tupian/meiguihua.html,网站界面如图所示:

   本人想做的就是把该界面的图片爬取下来并保存到本地。首先进入该界面然后鼠标右击,点击Firebug查看元素(我这里浏览器使用的是火狐林浏览器),如图所示。然后把鼠标放到图片上去,可以发现网页的图片都带有class=‘lazy’,那么我可以通过class属性来获取图片的链接,然后进行相关的爬去工作。代码如下:

# -*- coding:utf-8 -*-      
'''引入requests和BeautifulSoup库
from bs4 import BeautifulSoup     
import requests

url  = 'http://699pic.com/tupian/meiguihua.html'   #要爬取的网页地址

response = requests.get(url)          使用requests的get方法获取网页内容
#print(response.text)

soup = BeautifulSoup(response.text,'html.parser')    #使用BeautifulSoup对网页进行解析
#print(soup)
images = soup.find_all(class_ = 'lazy')      #通过find_all方法获取class属性为‘lazy’的图片链接:
#print(images)

这是我们得到的images是个列表,我们真正需要的是图片中箭头所指的链接。然后进行进一步解析操作,代码如下:

for image in images:
    image_url = image['data-original'] 
    title = image['title']    
    # print(image_url)

这是我得到的每个图片的地址,最后一步是通过with open方法把爬取到的图片进行保存了,代码如下:
contents = requests.get(image_url).content
with open(r'D:\python\ '+ title+ ' .jpg','wb') as f:  #保存到D盘python文件夹下,这里需要自己先建下python文件夹呢
    f.write(contents)

这就是保存下来的部分图片了,哈哈,下面把整体代码给大家展示一下:

# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import requests

url  = 'http://699pic.com/tupian/meiguihua.html'

response = requests.get(url)
#print(response.text)

soup = BeautifulSoup(response.text,'html.parser')
#print(soup)
images = soup.find_all(class_ = 'lazy')
#print(images)

# image_url = []#把获得的图片地址放到image_url中去
# for image in images:
#     #print(image['data-original'])
#     image_url.append(image['data-original'])
#
# #print(image_url)

for image in images:
    image_url = image['data-original']
    title = image['title']
    print(image_url)
    # print(title)
    contents = requests.get(image_url).content
    with open(r'D:\python\ '+ title+ ' .jpg','wb') as f:
        f.write(contents)

 

 

 

 

 

 

 

  

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值