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

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

Answer:

-

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

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

下载到文件夹中

-

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

得到如下内容

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

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

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

这里我查阅了官方文档

Python 练习册,每天一个小程序-第 0013题_第1张图片

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

你可能感兴趣的:(Python)