打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python批量爬取网络图片

上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看:

我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里。

图1 目标网页

还是按爬虫4流程:发出请求——获得网页——解析内容——保存内容

1、发出请求

1)找到网页地址:

在网页上右键单击“审查元素”,弹窗里选中Network面板,从左侧name列表里逐个选择项目,观察右侧Preview面板下的内容,发现出现下图2中的样式时,就是我们要的第一小步目标。

在图3所示的Headers面板下找到网页地址URL

图3

Request URL:

https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736

2)找到网页中图片地址:

由于网页上的图片都是有单独网址的,与网页的网址不同,所以我们需要在网页代码里找到图片的网址信息。继续查找Preview面板下的网页代码,图4红框内所示即为网页里插图图片的地址,这就是我们爬取图片真正要用的地址

图4, 红方框内为图片地址

所以,从网页里批量爬取图片,实际步骤是:

发出请求(网页地址)——获得网页——解析内容(得到图片地址)——向图片地址发出请求(循环)——获得网页——解析内容(得到图片)——保存内容

获得图片地址的代码为:

url = 'https://m.gmw.cn/toutiao/2020-02/16/content_123107586.htm?tt_group_id=6793905493262729736'rep = requests.get(url)# 发出访问请求,获得响应res = BeautifulSoup(rep.content, 'lxml')# 解析响应,获得网页内容img_url = res.find_all('p', style='text-align:center;')# 解析网页内容,获得全部图片网址

此时,我们试着检验一下获得的图片地址:

for im in img_url:        jpgurl = im.find('img')['src']        print(jpgurl)

结果为图5所示:

图5 网页中所有图片地址

2、批量获得网页

在上面的for循环里,向图片地址发生请求:

for im in img_url: jpgurl = im.find('img')['src'] r = requests.get(jpgurl)

3、解析获得图片

由于图片地址里没有其他内容,只有图片,解析很简单:直接取r.content就能得到图片。

for im in img_url:	......		r = requests.get(jpgurl)	jpg = r.content

4、保存图片

for im in img_url: ...... jpg = r.content nam = jpgurl[-23:]# 从图片网址里提取最后23个字符,当图片名称,也可以自己定义,不要重复即可 f = open(set_path() + nam, 'wb')# 从set_path()函数返回一个文件夹路径,与图片名称组合成文件的保存地址 f.write(jpg)# 将图片写入文件

set_path()函数返回一个预设保存文件的文件夹,如果预设的文件夹不存在,就自动创建。

def set_path():    path = r'e:/python/jpg'    if not os.path.isdir(path):        os.makedirs(path)    paths = path+'/'    return(paths)

运行后打开对应文件夹,图片已经完成下载,如图6:

图6 爬取到的图片

至此,批量爬取网页图片就完成了。

总结:

本文的爬取过程,比常说的爬虫4步骤多了好几步,其实,本质上还是万变不离其宗的4步流程。本例只不过是相当于把两套爬取流程进行了嵌套,少了一次保存内容的过程而已。关键是通过爬取获得网址后,再次爬取新网址里的内容,真正的爬取大多是通过这种嵌套实现的。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
怎样把网页音画放入QQ空间
selenium+python 爬取网络图片(1)
Python爬虫实战之获取网页图片案例(附代码)
python批量爬取图片并保存在本地文件夹下
梅南山下BBS站 - 武汉科技大学中南分校 - ≡影音娱乐≡ - 如何用代码装扮自己的QQ空间 - powered by Discuz!
原来没有下载券,也可以下载百度文库PPT,Python确实牛
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服