用Python2.7.5抓取某某网的图片

本文介绍了一位在国企工作的程序员如何利用Python的re和urllib2模块抓取某课网上的图片,并保存到本地。博主分享了复习正则表达式后,通过代码实现从网页中提取图片URL,转换为完整HTTP地址,然后下载图片的详细步骤。代码简洁明了,适合初学者实践。
摘要由CSDN通过智能技术生成

  Hi,各位网友很久没有更新自己的技术博客了,也是因为工作和个人学习的原因,准备报考计算机四级网络工程师和高级项目管理师的原因,基本上除了工作时间,省下来就是看书时间。本人在国企里面上班,每天朝九晚五,但是对于IT来说,事情不多,剩下的时间就是充实自己的技能包。国企基本上就是福利待遇都有,交通补贴通讯补贴员工生日过节福利,但是工资是少的可怜。碰到一个很好董事长,待我很好,在生活上面帮了一把,所以一直待着付出工作成果,回馈董事长。

  进入正题吧,最近复习一下正则表达式,接着利用正则表达式来抓取最新某课网的图片并保存到本地上。

运行环境:centos6.5  python2.7.5

代码块:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import re
import urllib2

#抓取网站的图片地址
req = urllib2.urlopen('https://www.imooc.com/course/list')
buf = req.read()
listurl = re.findall(r'\/\/img.+\.jpg',buf)

#添加字符拼成可以访问的http地址
urls=[]
for url in listurl:
    url = "https:" + url
    urls.append(url)
print urls

#设置初始变量,将每个图片按顺序保存到本地中
i=0
for url in urls:
    f = open(str(i)+'.jpg','w')
    req = urllib2.urlopen(url)
    buf =req.read()
    f.write(buf)
    i+=1

print "爬取图片完毕"

代码详细解释:

引用re,urllib2模块,re是正则表达式的模块,urllib2是抓取网站信息的模块。

首先定义变量req接受urllib2抓取到的数据,保存到buf中,在用正则表达式re模块中的findall方法,匹配值的正则表达式为(\/\/img.+\.jpg) 在buf变量中进行匹配。这里我用\l来转义两个//。

注意:抓取网站的数据一定要看清楚数据的类型和数据字符串,必要需要转化一下字符的类型。

然后大家有兴趣打印一下变量listiurl,这里面全部是网站图片的地址,但是地址前面缺少http开头,我就用一个for循环加入到新的列表中。

最后增加一个初始变量,用来记录每个图片的名字,在用文件方法写入本地中。当然每个人命名不一样,可以自由优化。

成果展示:

执行我的代码,图片保存在本地文件夹中。 可以使用xftp将文件拉出主机文件路径下。

 

感兴趣的同学,可以自己去爬一爬感兴趣的网站图片和音乐等。

 感谢某网Meshare_huang老师。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值