Python 练习册,每天一个小程序-第 0013题

第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)

Answer:

-

首先你需要的是爬虫基础,如果还没接触过请先阅读Python 练习册,每天一个小程序-第 0008-0009 题

我们要做的就是爬取图片的源地址

下载到文件夹中

-

把光标移动到美女图片上,右键,审查元素

得到如下内容

<img pic_type="0" class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580%3Bcp%3Dtieba%2C10%2C302%3Bap%3D%C9%BC%B1%BE%D3%D0%C3%C0%B0%C9%2C90%2C310/sign=8800a2e3b3119313c743ffb855036fa7/1e29460fd9f9d72abb1a7c3cd52a2834349bbb7e.jpg" bdwater="杉本有美吧,955,550" width="560" height="323" changedsize="true" style="cursor: url("http://tb2.bdstatic.com/tb/static-pb/img/cur_zin.cur"), pointer;">

可以看到图片地址是在img的BDE_Image类中

我们先从文本中提取所有类名为此的img标签

但我们实际需要的其实是src中的图片网址而不是这么一大段

这里我查阅了官方文档


tag竟然是字典,那么我们从img中取出src就很容易了

-

当你得到图片地址的时候你需要的就是把他下载下来

requests.get(url)得到的是一个response对象

所以你需要做的就是以二进制的写入方式,写入到文件中

-

写文件的时候,怎么让文件排序呢

用flag是一个很简单的方法,循环一次加上1

但是这里可以使用一个更简单的方法

python enumerate用法总结

如果你想美化输出,例如“0001”这种格式

要用到"04%d"这种方式,注意:04中的0不可省略

这代表若不足四位则以0补全

-

代码实现

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

os.chdir(r'C:\Users\Alex.hasee-PC\Desktop\pythonprogram\0013')
url='http://tieba.baidu.com/p/2166231880'
data=requests.get(url).text
soup=BeautifulSoup(data,'html.parser')

for count,i in enumerate(soup.select('img.BDE_Image')):
    img=requests.get(i['src'])
    with open('%04d.jpg'%count,'wb') as f:
        f.write(img.content)

-

github

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值